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

Форум PHP

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

 

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

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

тема: замена Enterа символом <br>
 
 автор: 10100100   (10.09.2005 в 08:38)   письмо автору
 
 

в общем проблема вот в чём строил гесту и столкнулся с такой вот траблой, когда пользователь вводит сообщение и нажмает энтер чтобы перейти на следующую строку то при нажатии на кнопочку отправить высвечивается само собой его сообщение но вот строка которая шла после энтера отображается не корректно, где то справа вверху а не в таблице основного сообщения... как можно реализовать замену Энтера Тэгом <br>

   
 
 автор: Edain   (10.09.2005 в 09:10)   письмо автору
 
   для: 10100100   (10.09.2005 в 08:38)
 

Существует стандартная функция - nl2br - заменяет символы новой строки на теги br

   
 
 автор: 10100100   (10.09.2005 в 09:50)   письмо автору
 
   для: Edain   (10.09.2005 в 09:10)
 

так и где эту функцию и как вписать?

   
 
 автор: cheops   (10.09.2005 в 12:11)   письмо автору
 
   для: 10100100   (10.09.2005 в 09:50)
 

Где угодно, можно непосредственно пред выводом сообщения в окно браузера прогнать текст через эту функцию
<?php
  $text 
nl2br($text);
?>

   
 
 автор: 10100100   (10.09.2005 в 12:48)   письмо автору
 
   для: cheops   (10.09.2005 в 12:11)
 

спасибо...

   
 
 автор: 10100100   (10.09.2005 в 12:53)   письмо автору
 
   для: cheops   (10.09.2005 в 12:11)
 

а вот чёт у мя не получается... где писать то, можете подсказать, а то не понимаю понимашь...


<? 
Error_Reporting
(E_ALL & ~E_NOTICE); 
$files="base.txt"
$qq=15
if (!
$email) {$email="Адрес не указан";} 
if (!
$homepage) {$homepage="нет";} 
if (
$message !="" && $name !="") { 
$time=Date("h:i:M:d"); 
$soo="\n<LINK href=style.css type=text/css rel=stylesheet><center><table cellspacing=3 cellpading=3 border=1 bordercolor=ffffff width=55%><tr><td width=100% height=20></td></tr><tr><td align=center><table cellspacing=0 cellpading=0 border=1 bordercolor=000000 width=90%><tr><td><table cellspacing=0 cellpading=0 width=100%><tr><td width=50%><b><a href=\"mailto:$email \">$name</a></td><td align=right width=50%>[<a href=\"http://$homepage \">$homepage</a>]</b></td></tr></td></tr></table> <tr><td><table cellspacing=0 cellpading=0 width=100%><tr><td width=50%><font size=1>$time</font></td><td align=right width=50%><font size=2>$city</font></td></tr></td></tr></table><tr><td>$message</td></tr></table></td></tr><tr><td width=100% height=20></td></tr></td></tr></table></center><br><br>"
$fp=fopen($files"a+"); 
$fw=fwrite($fp$soo);
fclose($fp); } 
$message=substr($message0999); 
$email=substr($email040); 
$homepage=substr($homepage040); 
$name=substr($homepage010); 

$lines=file($files); 
$a=count($lines); 
$u=$a-$qq
for(
$i=$a$i>=$u$i--) {echo $lines[$i];} 
?> 

   
 
 автор: cheops   (10.09.2005 в 13:35)   письмо автору
 
   для: 10100100   (10.09.2005 в 12:53)
 

Что такое $files? Может здесь проще будет добавить тэг <br> в вывод
<?php
  
for($i=$a$i>=$u$i--) {echo $lines[$i]."<br>";}
?>

   
 
 автор: special_   (10.09.2005 в 16:40)
 
   для: cheops   (10.09.2005 в 13:35)
 

Я тоже думаю, что лучше добавить в вывод:

<?php
$br 
str_replace("\n""<br>"$message);
?>

   
 
 автор: 10100100   (10.09.2005 в 16:57)   письмо автору
 
   для: special_   (10.09.2005 в 16:40)
 

а вот можно расшифровать этот код? а то я не знаю функцию "str_replace"

   
 
 автор: cheops   (10.09.2005 в 20:38)   письмо автору
 
   для: 10100100   (10.09.2005 в 16:57)
 

Заменить в переменной $message переводы строк \n на тэг <br> и присвоить это переменной $br.

   
 
 автор: 10100100   (11.09.2005 в 14:58)   письмо автору
 
   для: cheops   (10.09.2005 в 20:38)
 

ничег не получется... он всёравно в базу записывает с переведённой строкой... в чём косяк то? :((((

   
 
 автор: cheops   (11.09.2005 в 21:49)   письмо автору
 
   для: 10100100   (11.09.2005 в 14:58)
 

Приведите плиз код, который не работает? Что он выводит и что вы хотите получить в результате?

   
 
 автор: 10100100   (12.09.2005 в 12:17)   письмо автору
 
   для: cheops   (11.09.2005 в 21:49)
 

хорошо.... вот код который глючит...


<? 
Error_Reporting
(E_ALL & ~E_NOTICE); 
$files="base.txt"
$qq=15
if (!
$email) {$email="Адрес не указан";} 
if (!
$homepage) {$homepage="нет";} 
if (
$message !="" && $name !="") {
$time=Date("h:i:M:d"); 
$br str_replace("\n""<br>"$message); 
$soo="\n<LINK href=style.css type=text/css rel=stylesheet><center><table cellspacing=3 cellpading=3 border=1 bordercolor=ffffff width=55%><tr><td width=100% height=20></td></tr><tr><td align=center><table cellspacing=0 cellpading=0 border=1 bordercolor=000000 width=90%><tr><td><table cellspacing=0 cellpading=0 width=100%><tr><td width=50%><b><a href=\"mailto:$email \">$name</a></td><td align=right width=50%>[<a href=\"http://$homepage \">$homepage</a>]</b></td></tr></td></tr></table> <tr><td><table cellspacing=0 cellpading=0 width=100%><tr><td width=50%><font size=1>$time</font></td><td align=right width=50%><font size=2>$city</font></td></tr></td></tr></table><tr><td>$message</td></tr></table></td></tr><tr><td width=100% height=20></td></tr></td></tr></table></center><br><br>"
$fp=fopen($files"a+"); 
$fw=fwrite($fp$soo);
fclose($fp); } 
$message=substr($message0999); 
$email=substr($email040); 
$homepage=substr($homepage040); 
$name=substr($homepage010); 

$lines=file($files); 
$a=count($lines); 
$u=$a-$qq
for(
$i=$a$i>=$u$i--) {echo $lines[$i];} 
?> 


глюк заключается в следующем - когда я пишу в форме в арее Message с переводом строк то переведённые строки отображаются не корректно, не в таблице - как это должно быть а за её пределами сверху экрана... вот а последующие повторы сообщения такого же уже нормально работает за исключением того что теперь переведённые строки не переводились а просто писались через пробел... вот...

   
 
 автор: cheops   (12.09.2005 в 12:47)   письмо автору
 
   для: 10100100   (12.09.2005 в 12:17)
 

Возможно где-то не закрытый тэг в таблице - в таком месиве не сложно допустить ошибку. Обычно в файлах гранять лишь информацию, а форматирование производят уже при выводе, так как ошибки форматирования сохраняются в файл намертво и уже нет возможности их исправить. Информацию удобно хранить в виде сериализованного массива PHP http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=907

   
 
 автор: 10100100   (12.09.2005 в 13:03)   письмо автору
 
   для: cheops   (12.09.2005 в 12:47)
 

тэг... хм... вариант... сегодня проверю всё досканально! спасибо...

   
 
 автор: 10100100   (10.09.2005 в 16:56)   письмо автору
 
   для: cheops   (10.09.2005 в 13:35)
 

насколько я понимаю то если мы добавим тэг <br> на вывод то выведится всё ка и прежде только в конце ещё будет переход на строку - так? если так но нам этого не надо...

   
 
 автор: Киналь   (10.09.2005 в 17:40)   письмо автору
 
   для: 10100100   (10.09.2005 в 12:53)
 

Перед строкой

$time=Date("h:i:M:d");

впишите буквально следующее:

$message=nl2br($message);

И будет вам счастье=))

   
 
 автор: 10100100   (10.09.2005 в 19:10)   письмо автору
 
   для: Киналь   (10.09.2005 в 17:40)
 

странно я это уже вводил, ладно попробую ещё раз... спасибо...

   
 
 автор: 10100100   (10.09.2005 в 19:12)   письмо автору
 
   для: Киналь   (10.09.2005 в 17:40)
 

не помогает ! точнее он конечно пишет br но пишет это перенеся строку.. а мне нужно чтобы текст не переносился на следующую строку а оставался на одной строке :(((

   
 
 автор: XPraptor   (12.09.2005 в 13:44)   письмо автору
 
   для: 10100100   (10.09.2005 в 19:12)
 

Замени в последней строке в своем коде на вот этот фрагмент и будет выводится с перносом:

{print str_replace(chr(10), "<BR>", $lines[$i]);}

   
 
 автор: 10100100   (12.09.2005 в 17:02)   письмо автору
 
   для: XPraptor   (12.09.2005 в 13:44)
 

ВСЕМ СПАСИБО! ПРОБЛЕМА ИСЧЕРПАНА!
ДЕЛО ОКАЗАЛОСЬ В МОЕЙ НЕ ВНИМАТЕЛЬНОСТИ! !!

   
 
 автор: P@Sol   (12.09.2005 в 17:14)   письмо автору
 
   для: 10100100   (12.09.2005 в 17:02)
 

а мне интересно...где была ошибка

   
 
 автор: 10100100   (12.09.2005 в 18:09)   письмо автору
 
   для: P@Sol   (12.09.2005 в 17:14)
 

посмотрите на код там есть строка содержащая переменную $br, так вот её то и нужно было заменить на $message :)))))))))) в общем я вообще затупил, но и не сказали мне хорошо что я сам заметил наконец то :))) в предь буду внимательнее...

   
Rambler's Top100
вверх

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