textarea и абзацы

Статус
В этой теме нельзя размещать новые ответы.

Emporio

Постоялец
Регистрация
17 Апр 2009
Сообщения
63
Реакции
4
Допустим через textarea я отправляю стих:
В дверях эдема ангел нежный
Главой поникшею сиял,
А демон мрачный и мятежный
Над адской бездною летал.

Дух отрицанья, дух сомненья
На духа чистого взирал
И жар невольный умиленья
Впервые смутно познавал.

В такой скрипт:

PHP:
<?php
$s = $_REQUEST[stih];// строка, в которой нужно произвести замену
$slova=array("демон","жар");// тут все слова, к которым будут синонимы
$sinon=array("Ангел","пар");// тут синонимы. Важно, чтобы каждому слову соответствовал синоним
// т.е. одинаковое количество элементов в массивах $slova и $sinon
$ns=str_replace($slova,$sinon,$s); // новая строка
echo $ns;
?>

Он заменяет и выводит мне всё в одну строчку, а нужно, чтоб вывел 2 четверостишья. Помогите пожалуйста!
 
PHP:
<?php 
$s = $_REQUEST[stih];// строка, в которой нужно произвести замену 

$s=str_replace("\n","<br>",$s); //// Делаем переносы 

$slova=array("демон","жар");// тут все слова, к которым будут синонимы 
$sinon=array("Ангел","пар");// тут синонимы. Важно, чтобы каждому слову соответствовал синоним 
// т.е. одинаковое количество элементов в массивах $slova и $sinon 
$ns=str_replace($slova,$sinon,$s); // новая строка 
echo $ns; 
?>

Как то так должно работать
 
PHP:
  <?php
$s = $_REQUEST[stih];// строка, в которой нужно произвести замену
$slova=array("демон","жар");// тут все слова, к которым будут синонимы
$sinon=array("Ангел","пар");// тут синонимы. Важно, чтобы каждому слову соответствовал синоним
// т.е. одинаковое количество элементов в массивах $slova и $sinon
$ns=str_replace($slova,$sinon,$s); // новая строка
echo nl2br($ns); //этого должно быть достаточно
?>
 
PHP:
  <?php
$s = $_REQUEST[stih];// строка, в которой нужно произвести замену
$slova=array("демон","жар");// тут все слова, к которым будут синонимы
$sinon=array("Ангел","пар");// тут синонимы. Важно, чтобы каждому слову соответствовал синоним
// т.е. одинаковое количество элементов в массивах $slova и $sinon
$ns=str_replace($slova,$sinon,$s); // новая строка
echo nl2br($ns); //этого должно быть достаточно
?>
Спасибо конечно, что отозвались, но я сразу нашёл решение, не мог отписаться, потомочто на сайт не мог зайти, не открывался он.

Ты поставил при выводе nl2br(), но это только в конкретном случае, а есть масса других, и будет лучше, чтобы передавался уже с абзацами и строчками, тобишь это будет выглядеть вот так:

PHP:
<?php
$s = nl2br($_REQUEST[stih]);// строка, в которой нужно произвести замену
$slova=array("демон","жар");// тут все слова, к которым будут синонимы
$sinon=array("Ангел","пар");// тут синонимы. Важно, чтобы каждому слову соответствовал синоним
// т.е. одинаковое количество элементов в массивах $slova и $sinon
$ns=str_replace($slova,$sinon,$s); // новая строка
echo $ns; //этого должно быть достаточно
?>
 
Правильно так, как написали в Для просмотра ссылки Войди или Зарегистрируйся. А ваш последний вариант в теории неверен и будет работать с оговорками.
 
А что если в тексте будут ссылки?
HTML:
Бла... Бла... Бла...
Бла...
http://www.site.ru/plik.html
Бла... Бла... Бла...
Бла...
Нужно чтобы он искал их и вставлял на место имя хоста, в данном случае
HTML:
www.site.ru
.
Нужно чтобы получилось вот так:
HTML:
Бла... Бла... Бла...
Бла...
www.site.ru
Бла... Бла... Бла...
Бла...

Добавлено через 50 минут
str_replace я заменил на preg_replace, чтобы регуляркой находить ссылки, но как их заменить на адрес их же хоста?
 
str_replace я заменил на preg_replace, чтобы регуляркой находить ссылки, но как их заменить на адрес их же хоста?
так если у тебя есть регулярка, используй \1 (либо $1), ну или больший номер... смотря как она у тебя построена.
Читай мануал к ф-ции preg_replace
 
так если у тебя есть регулярка, используй \1 (либо $1), ну или больший номер... смотря как она у тебя построена.
Читай мануал к ф-ции preg_replace
Читал я, вот регулярка:
Если $1, то выводит http. Как сделать, незнаю, адреса сайтов, их будет несколько и все разные.
 
Всё, задача решена! )
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху