Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: превращение символов в теги
 
 автор: cccp   (13.01.2006 в 04:14)   письмо автору
 
 

Добрый день!

Я использую финкцию
str_replace("\n", "<br>", $d));

Всё работает и получается, только вот на самой страничке так и видно <br>
Без самого перемещения на строку.

Помогите пожалуста понять.
В чём дело?

файл где текст записывается не в виде файла .тхт (текста) , а в такомже виде как и сам закачиваемый файл. Только с текстовым содержанием в нутри.
Может это из-за этого?

Вот скрипт.
Посмотрите пожалуста, может здесь кое-какие ошибки.


<?php

$dossier_cible 
"../discography/";

if(isset(
$_FILES['f'])&&isset($_POST['d']))
{
 if(
file_exists("$dossier_cible/".basename($_FILES['f']['name']))) die("<html><body><h1>Un fichier du m&#234;me nom existe d&#233;j&#224; !</h1></body></html>");

 if(!
move_uploaded_file($_FILES['f']['tmp_name'], "$dossier_cible/".basename(str_replace(" ""_"$_FILES['f']['name'])))) die("Echec ! V&#233;rifiez les persmissions du dossier $dossier_cible !");
 
$d substr($_POST['d'],0,60); $fp fopen("$dossier_cible/d/".basename(str_replace(" ""_",$_FILES['f']['name'])),"w");
 
fwrite($fp,str_replace("\n""<br>"$d));
 
fclose($fp);
}

?>
<?
function redimage($img_src,$dst_w,$dst_h) {
   
// Lit les dimensions de l'image
   
$size GetImageSize($img_src);  
   
$src_w $size[0]; $src_h $size[1];
   
// Teste les dimensions tenant dans la zone
   
$test_h round(($dst_w $src_w) * $src_h);
   
$test_w round(($dst_h $src_h) * $src_w);
   
//URL fayla
   
$urlfile "$dossier_cible$f";
   
// Si Height final non pr&#233;cis&#233; (0)
   
if(!$dst_h$dst_h $test_h;
   
// Sinon si Width final non pr&#233;cis&#233; (0)
   
elseif(!$dst_w$dst_w $test_w;
   
// Sinon teste quel redimensionnement tient dans la zone
   
elseif($test_h>$dst_h$dst_w $test_w;
   else 
$dst_h $test_h;

   
// Affiche les dimensions optimales
   
echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
?>
<html>

<head>
 <title>Envoi de fichier</title>
</head>

<body>

<h1>Envoi de fichier</h1>

<h2>Liste des fichiers dans <?=$dossier_cible?></h2><br />
<table align="center" width="80%" cellspacing="0" cellpadding="2" bgcolor="#EFEFEF">
<tr style="background:#7F7F7F;"><td width="35%"> &nbsp; Nom du fichier</td><td> &nbsp; Description</td></tr>
<?php

$d 
opendir($dossier_cible); readdir($d); readdir($d);

while(
$f readdir($d))
{
 if(
$f == ".htaccess" || $f=="d") continue;

 
$desc implode('',file("$dossier_cible/d/$f"));
?>
<tr><td><a href="#"><img src="<?=$dossier_cible.htmlentities($f)?>" border="0" onClick="MM_openBrWindow('.$dossier_cible.$f.','agrandire','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no')" <?redimage("$dossier_cible$f",100,100)?>></a></td>
<td><?=htmlentities($desc)?></td></tr>
<? ?>
</table>

   
 
 автор: WebTech   (13.01.2006 в 11:03)   письмо автору
 
   для: cccp   (13.01.2006 в 04:14)
 

У тебя есть строка

<?=htmlentities($desc)?>

Функция htmlentities() производит конвертацию всех символов, которые могут иметь html представление. Посмотри как выглядит <br> после обработки этой функцией

&lt;br&gt;

естественно браузер выведет <br>, а не перевод строки.

htmlentities() надо использовать перед записью в файл и еще добавить stripslashes() (для пущей безопасности), т.е. твою строку

fwrite($fp,str_replace("\n", "<br>", $d));

переписать

fwrite($fp, stripslashes(htmlentities($d)));

А при выводе текста в броузер использовать функцию nl2br(), которая заменяет переводы строк на <br>, т.е.

<td><?=nl2br($desc)?></td></tr>

   
 
 автор: cccp   (13.01.2006 в 13:28)   письмо автору
 
   для: WebTech   (13.01.2006 в 11:03)
 

Спасибо за ответ.
Темболее что такой понятный!

Я сделаю изминения сегодня вечером и скажу как.

   
 
 автор: cccp   (13.01.2006 в 14:56)   письмо автору
 
   для: cccp   (13.01.2006 в 13:28)
 

КЛАССНО!
Работает !
ОГРОМНОЕ СПАСИБО !!!

:)

ПС:
Не могли бы вы мне ещё подсказать как мне сделать линк на фотки?

Я хотел использовать таким образам,


<a href="#"><img src="<?=$dossier_cible.htmlentities($f)?>" border="0" onClick="MM_openBrWindow('.$dossier_cible.$f.','agrandire','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no')" <?redimage("$dossier_cible$f",100,100)?>></a>

но линк не высвечивается.
Как сделать?

   
 
 автор: WebTech   (13.01.2006 в 16:24)   письмо автору
 
   для: cccp   (13.01.2006 в 14:56)
 

Попробуй исправить так:

<a href="#">
<img src="<? echo $dossier_cible.htmlentities($f?>" border="0" onClick="MM_openBrWindow('<?  echo $dossier_cible.$f ?>','agrandire','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no')" <? redimage("$dossier_cible.$f",100,100?>>
</a>

Т.е., если хочешь использовать значения php-переменных в javascript, то их надо "вывести" в браузер, напечатать, т.к. JavaScript это клиентский язык. Т.е. приписать echo перед переменными.

   
 
 автор: cccp   (13.01.2006 в 22:58)   письмо автору
 
   для: WebTech   (13.01.2006 в 16:24)
 

Добрый вечер.

Спасибо за помощь.

А можно ли сделать так?

'width=<? echo $dst_w ?>,height=<? echo $dst_h ?>'

Тоесть что бы popup открывался по оригинальному размеру фотки.


<a href="#"><img src="<?=$dossier_cible.htmlentities($f)?>" border="0" onClick="MM_openBrWindow('<?  echo $dossier_cible.$f ?>','agrandire','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no','','width=<?  echo $dst_w ?>,height=<?  echo $dst_h ?>')" <?redimage("$dossier_cible$f",100,100)?>></a>



PS:
Прикол в том что я попробавал просто так поставить это:

'width=100,height=100'

но popup открывается не по размеру.

   
 
 автор: WebTech   (14.01.2006 в 09:26)   письмо автору
 
   для: cccp   (13.01.2006 в 22:58)
 

width=<? echo $dst_w ?>,height=<? echo $dst_h ?>
работать не будет поскольку переменные $dst_w и $dst_h объявлены внутри функции и "снаружи" не видны. Можно объявить их глобальными, т.е. вначале функции написать

global $dst_w;
global $dst_h;

тогда они будут видны и вне функции. Но так делать не рекомендуется во избежание ошибок в коде.
Но как я понял твоя функция redimage() как раз и печатает размеры изображения, поэтому вместо

width=<? echo $dst_w ?>,height=<? echo $dst_h ?>

можно написать

<?redimage("$dossier_cible.$f",100,100)?>

Попробуй так.

   
 
 автор: cccp   (14.01.2006 в 12:48)   письмо автору
 
   для: WebTech   (14.01.2006 в 09:26)
 

Спасибо.
Получилось, но только когда я написал так:

<? redimage("$dossier_cible$f",100,100)?>


Тоесть без точьки.

Хотя 100 это размер уменьшенной фотки,
а я хотел что бы в Popup открывалась фотка в её оригинальном размере.

   
 
 автор: WebTech   (14.01.2006 в 16:41)   письмо автору
 
   для: cccp   (14.01.2006 в 12:48)
 

Ну, вообще да, надо без точки в данном случае :-) Если хочется с точкой, тогда надо без кавычек.

А чтобы открывалась фотка с оригинальными размерами... Подставь соответствующие значения. Я думал, что ты хочешь, чтобы в popup'e открывалась уменьшенная фотка. У тебя похоже функция это и делает, пересчитывает размеры. Если хочешь оригинальные размеры, зачем тогда функция?

   
 
 автор: cccp   (14.01.2006 в 20:02)   письмо автору
 
   для: WebTech   (14.01.2006 в 16:41)
 

На страничке показывается в уменьшенном варианте загруженная фотка, а линк на popup это что бы посмотреть фотку в её оригинальном размере.

   
 
 автор: WebTech   (15.01.2006 в 09:05)   письмо автору
 
   для: cccp   (14.01.2006 в 20:02)
 

Тогда, наверное, так

<?php
$size 
GetImageSize($dossier_cible.$f);   
$w $size[0]; $h $size[1];
?>
<a href="#"><img src="<?=$dossier_cible.htmlentities($f)?>" border="0" onClick="MM_openBrWindow('<?  echo $dossier_cible.$f ?>','agrandire','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no','','width=<?  echo $w ?>,height=<?  echo $h ?>')" <?redimage("$dossier_cible$f",100,100)?>></a>

   
 
 автор: cccp   (15.01.2006 в 18:59)   письмо автору
 
   для: WebTech   (15.01.2006 в 09:05)
 

Спасибо.
Огромное спасибо!
Так сработало!

WebTech,
а не подскажите как можно сделать что бы можно было бы редактировать содержимый текст?
Тот что виден здесь :
<?=htmlentities($desc)?>


можно ли поставить рядом с этим маленький формуляр который позволит сделать это


<form name="form" method="post" action="...">
    Выбрать: <input type="checkbox" name="checkbox" value="checkbox">
    <input type="submit" name="Submit" value="отредактировать">
</form>

Ну и естественно что бы содержимое высвечивалось в текстовом формуляре:


<form name="form" method="post" action="...">
<textarea name="text" cols="20" rows="5"></textarea>
<input name="save" type="button" value="SAVE">
</form>

Понимаете что я имею в виду?



Я вот попытался сам переделать один скрипт, но чего-то ничего не получилось.
Видемо потому что скрипт сам по себе был сделан для формуляра где надо было в ячейки писать название файла который ти хочеш редактиравать.

<?php 
  
if(isset($_POST['content'])) 
  { 
    
$fd = @fopen($_POST['filename'],"w"); 
    if(!
$fd) exit("Такой файл не сушествует !<br><br><a href=\"#\" onclick=\"history.go(-1);return(false)\">Назад</a>"); 
    
fwrite($fd,stripslashes($_POST['content'])); 
    
fclose($fd); 
    
$_GET['filename'] = $_POST['filename']; 
  } 
?> 


<form action = "1.php" method="get"> 
   <p>Выбрать: 
     <input type="radio" name="filename" value="<?php echo $_GET['filename']; ?>"> 
     <input type="submit" value="Редактировать" onClick="value='Подождите...'"> 
   </p> 



<?php 
  
// Если в строке зароса передано имя 
  // файла - откриваем его для редактирования 
  
if(isset($_GET['filename'])) 
  { 
    
$fd = @fopen($_GET['filename'],"r"); 
    if(!
$fd) exit("Такой файл не сушествует !<br><br><a href=\"#\" onclick=\"history.go(-1);return(false)\">Назад</a>"); 
    
$bufer fread($fd,filesize($_GET['filename'])); 
    
fclose($fd); 
    
?> 

<form action = "1.php" method="post"> 
        Содержимое:<br> 
<textarea cols=20 rows=10 name="content"><?php echo $bufer?></textarea> 
        <br> 
        <input type="hidden" name="filename" value="<?php echo $_GET['filename']; ?>"> 
        <input type="submit" name="edit" value="Сохранить"> 
      </form>

   
 
 автор: WebTech   (16.01.2006 в 15:46)   письмо автору
 
   для: cccp   (15.01.2006 в 18:59)
 

Это все еще относится к старому скрипту? Который начинается на
$dossier_cible = "../discography/";
Если да, то тогда немного непонятно...
Тебе надо, чтобы после загрузки файла его содержимое редактировалось?

P.S. Начни новую тему типа "продолжение темы Превращять символы в теги"

   
 
 автор: cccp   (17.01.2006 в 00:04)   письмо автору
 
   для: WebTech   (16.01.2006 в 15:46)
 

OK.
начну новую тему.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования