Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Снос строки или новая строка. 
V
    Опции темы
sayber
Дата 21.8.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



Я тут делаю небольшой кодик и мне надо чтоб если в поле textarea я нажал enter то это заменялось на <br>

Вот  этот код не работает

Код


<?php

function replace_parcer () {
    
    
//заменить все теги
$_POST['text_compiler'] = str_replace('<', '&lt;', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('>', '&gt;', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('"', '&quot;', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('\n', '<br>', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('\r', '<br>', $_POST['text_compiler']);

//заменить ссылки
$_POST['text_compiler'] = preg_replace('/http:\/\/[^\s]+/', '<a href="$0" alt="$0" tooltip="Перейдите по ссылке...">$0</a>', $_POST['text_compiler']);



$str = stripslashes( $_POST['text_compiler'] );
echo $str;
    
    
}

print <<<END
<form action="1.php?ok=1" method=post>
<textarea name="text_compiler" cols=44 rows=22>
Мы не знаем, <<< ."". .>>> &&&& насколько успешно продавалась аркада http://www.ag.ru/games/crazy_frog_racer Краткая информация об игре, созданная "по мотивам" короткометражного анимационного ролика, но, 



видимо, студию Neko Entertainment и владельцев лицензии цифры устраивают, — иначе бы не взялись за сикв
</textarea>
<input type="submit" >
</form>
END;


if (isset($_GET['ok']) == 1) {
    
replace_parcer();
}
?>


А точнее не работает 
Код

$_POST['text_compiler'] = str_replace('\n', '<br>', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('\r', '<br>', $_POST['text_compiler']);

--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
szz
Дата 21.8.2006, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Какую ошибку выдает?


--------------------
PM   Вверх
sayber
Дата 21.8.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



szz, Нет ошибки - он просто не меняет снос на <br>
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Muchenik
Дата 21.8.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Код

$_POST['text_compiler'] = str_replace('\n', '<br>', $_POST['text_compiler']);
$_POST['text_compiler'] = str_replace('\r', '<br>', $_POST['text_compiler']);


Непонятен смысл второй строки. Ты же уже заменил <br> в первой строке на \n 

Я бы вместо этих двух строк использовал бы nl2br();

Это сообщение отредактировал(а) Muchenik - 21.8.2006, 21:49
PM MAIL ICQ   Вверх
sayber
  Дата 21.8.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



Без разници - есть или нет второй строки

Добавлено @ 22:41 
Цитата(Muchenik @ 21.8.2006,  21:47)

Я бы вместо этих двух строк использовал бы nl2br();

А вообще спс за функцию.

я помню раньше была функция для разбивки текста по (к примеру) 30-ти символам.

То есть к примеру у нас текст аааааааааааааааааааааааааааааааааааааа разбивается на аааааааааа аааааааааа ааааааааа

Это сообщение отредактировал(а) sayber - 21.8.2006, 22:43
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Muchenik
Дата 21.8.2006, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Код

wordwrap ();

PM MAIL ICQ   Вверх
Mal Hack
Дата 21.8.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Muchenik @  21.8.2006,  23:46 Найти цитируемый пост)
wordwrap ();

А теперь смотрим в мане, что эта функция делает...

htmlspecialchars
nl2br
PM ICQ   Вверх
Muchenik
Дата 21.8.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Цитата(Mal Hack @ 21.8.2006,  23:00)
Цитата(Muchenik @  21.8.2006,  23:46 Найти цитируемый пост)
wordwrap ();

А теперь смотрим в мане, что эта функция делает...

htmlspecialchars
nl2br

В смысле ???  smile 

Человек спросил:
Цитата

я помню раньше была функция для разбивки текста по (к примеру) 30-ти символам.



wordwrap --  Выполняет перенос строки на данное количество символов с использованием символа разрыва строки.

Mal Hack, при всем уважении,  читайте внимательней пост

Это сообщение отредактировал(а) Muchenik - 21.8.2006, 23:26
PM MAIL ICQ   Вверх
Mal Hack
Дата 21.8.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Muchenik @  22.8.2006,  00:23 Найти цитируемый пост)

Mal Hack, при всем уважении,  читайте внимательней пост

Читаю пост. Речь идет про замену переводом строк на <br>.
Я для этого говорил.

PM ICQ   Вверх
Vaulter
Дата 22.8.2006, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



Muchenik, в данном случае wordwrap не подходит, так разбиения не треба, а треба замена.




--------------------
PM MAIL WWW ICQ   Вверх
Kirill Baranov
Дата 22.8.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



По-моему вы что-то уж больно сильно геморитесь, ибо можно просто сделать:
Код

$content=nl2br($_POST['text_compiler']);


Это сообщение отредактировал(а) Kirill Baranov - 23.8.2006, 10:34
PM MAIL   Вверх
ewolf
Дата 22.8.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Совершенно верно, следует использовать nl2br.

А так, вообще экранирующие символы действуют только в строках, заключенных в двойные кавычки ( http://www.php.net/manual/ru/language.types.string.php )

Таким образом, хотя nl2br вернее и проще, код из первого поста можно переписать так:

Код

$_POST['text_compiler'] = str_replace("\n", '<br>', $_POST['text_compiler']);$_POST['text_compiler'] = str_replace('\r', '<br>', $_POST['text_compiler']);[/



PM MAIL ICQ   Вверх
sayber
Дата 22.8.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

Репутация: нет
Всего: нет



Короче вот конечный результат 


Код

function replace_news () {

$_POST['text'] = str_replace('<', '&lt;', $_POST['text']);
$_POST['text'] = str_replace('>', '&gt;', $_POST['text']);
$_POST['text'] = str_replace('"', '&quot;', $_POST['text']);
$_POST['text'] = nl2br("{$_POST['text']}");
$_POST['text'] = preg_replace('/http:\/\/[^\s]+/', '<a href="$0" alt="$0">$0</a>', $_POST['text']);
$_POST['text'] = stripslashes( $_POST['text'] );

}

Можно закрывать тему . Спасиб!
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 22.8.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(sayber @  22.8.2006,  17:47 Найти цитируемый пост)
$_POST['text'] = nl2br("{$_POST['text']}");

О всемогуще Админе... Что это???
Код
$_POST['text'] = nl2br($_POST['text']);


Цитата(sayber @  22.8.2006,  17:47 Найти цитируемый пост)
$_POST['text'] = str_replace('<', '&lt;', $_POST['text']);
$_POST['text'] = str_replace('>', '&gt;', $_POST['text']);
$_POST['text'] = str_replace('"', '&quot;', $_POST['text']);


Цитата(sayber @  22.8.2006,  17:47 Найти цитируемый пост)
$_POST['text'] = stripslashes( $_POST['text'] );

А что мешает htmlspecialchars использовать?
PM ICQ   Вверх
ZlojEzh
Дата 23.8.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



в догонку:
в изначальном коде ошибка заключалась в использовании одинарных кавычек
надо писать 
Код
str_replace("\n",...,...)

хотя лучше, конечно, использовать nl2br()
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.