Перейти к контенту

Форматирование текста


Рекомендуемые сообщения

Вот у меня вопрос.

Юзать такую фичу при парсинге текста это жестоко или нет, по отношению к ресурсам сервака?

 

$txt = preg_replace( "# #i"	 , "nbsp;" , $txt );

 

Чтобы пробелы были "как есть".

(Сам то я думаю что проблем нет, но непонятно почему так никто не делает :D )

 

PS

как-то странно тег code работает пробел nbsp; жуёт

Ссылка на комментарий
Поделиться на других сайтах

Жестоко.

http://ru2.php.net/str_replace

:D

Этого будет достаточно.

Ссылка на комментарий
Поделиться на других сайтах

То есть везде где можно в исходниках лучше поменять preg_replace на str_replace?

 

 

PS

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

http://www.ibresource.ru/forums/index.php?...st&p=124531

Ссылка на комментарий
Поделиться на других сайтах

Строковые функции работают значительно быстрее регулярных выражений, по сему, при возможности, рекомендуется использовать их.

Да и вообще, заменять обычный пробел на неразрывный — это куда более жестче, чем использовать регулярное выражение. :D Неразрывный пробел по своей сути существует для очень «узких» место — чтобы тире на новую строку не переносилось без сзади идущего слова, предлоги были привязаны к словам и т.п.

Изменено пользователем sM1Le
Ссылка на комментарий
Поделиться на других сайтах

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

http://www.ibresource.ru/forums/index.php?...st&p=124531

Да, там лучше заменить.

 

Строковые функции работают значительно быстрее регулярных выражений, по сему, при возможности, рекомендуется использовать их.

Да и вообще, заменять обычный пробел на неразрывный — это куда более жестче, чем использовать регулярное выражение. :D Неразрывный пробел по своей сути существует для очень «узких» место — чтобы тире на новую строку не переносилось без сзади идущего слова, предлоги были привязаны к словам и т.п.

+1, я бы это только в "коде"(code) использовал, а если нужны изощрения с текстом - добавил бы свой bb-код.

Ссылка на комментарий
Поделиться на других сайтах

:D Во, точно) Буду юзать тег типа [PRE] но не хтмл'ный и отстреливать прег_реплайс

Смайл, Саннис - спасибо за ответы ;)

Ссылка на комментарий
Поделиться на других сайтах

# #i

Долго смеялся :D

 

Чтобы пробелы были "как есть".

(Сам то я думаю что проблем нет, но непонятно почему так никто не делает

Паладин, заменять можно. Но только не забывай что трафик возврастает. Вместо одного байта юзеры твоего форума будут качать уже 5.

Ссылка на комментарий
Поделиться на других сайтах

Я так сделал в пост парсере.

Норм? :D

 

Из базы в форум
$txt = preg_replace( "#<!--pre-->(.+?)<!--/pre-->#is"  , "\[pre\]\\1\[/pre\]"  , $txt );

Из форума в базу
$txt = preg_replace( "#\[pre\](.+?)\[/pre\]#ies", "\$this->regex_pre_format('\\1')", $txt );

Функция
function regex_pre_format($IN)
{
$IN = str_replace( "  ", "  ", $IN );
return "<!--pre-->".$IN."<!--/pre-->";
}

 

Просто html'ый тег pre задаёт не тот шрифт, что по умолчанию используется на форуме.

 

PS

Нужно ли экранировать слешами спецсимволы в прег_реплейсе?

Ссылка на комментарий
Поделиться на других сайтах

Нужно ли экранировать слешами спецсимволы в прег_реплейсе?

Да. В стр_реплейсе - нет.

 

P.S. А что мешает в CSS дописать:

pre{
тра-ля-ла нужный фрнт
}

?

Ссылка на комментарий
Поделиться на других сайтах

Вообще для pre не надо конвертировать пробелы. Они и так там не разрывные.
Ссылка на комментарий
Поделиться на других сайтах

А что мешает в CSS дописать:

Код

pre{

тра-ля-ла нужный фрнт

}

Я думал для pre нельзя прописать какой попало фонт и там принудительно ставится Arial. Исправил :D

Ссылка на комментарий
Поделиться на других сайтах

Pre - отстой((

Длинной строчкой он растягивает таблицу поста. По проверке длины слов проходит и растягивает.

Возвращаюсь к варианту который выше.

Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.