Проблема с переводом строки

kesha

Новичок
понял, буду пробывать, спасибо

-~{}~ 13.05.07 16:11:

Работает! :)
Но появилась еще одна проблема с экранированием кавычек ):
у меня выводятся они так: \".
функция htmlspecialchars() не пашет ):
есть какие-то альтернативы?
 

Фанат

oncle terrible
Команда форума
есть
phpfaq.ru/slashes
непонятно, каким боком тут функция htmlspecialchars()

кстати, замену переводов строк надо было делать вот так
$message = str_replace("\r", "<br>", $message);
$message = str_replace("\n", "<br>", $message);

этот код, надеюсь, понятно, что делает?
 

kesha

Новичок
понятно, но и с регулярными выражениями тоже все нормально пашет, спасибо!

-~{}~ 13.05.07 16:35:

про слеши тоже понял, пасиб
 

Фанат

oncle terrible
Команда форума
С регулярными выражениями ты не понимаешь, как оно пашет.
А это очень плохо.
"нормально пашет" - это фигня. Не нужно, чтобы работало.
Нужно, чтобы ты понимал, как оно работает.

Ты и так-то не понимаешь, что делает твой скрипт.
К примеру, при записи строки в базу, ты руками добавляешь этот самый перевод строки, вот здесь:
fwrite($f, "$date|$theme|$message|$author|\n");
то есть, все твои страхи по поводу последнего незамененного перевода строки - беспоченные.

Надо не чтобы "пахало", а чтобы ты понимал - как именно пашет, и почему.
Поэтому надо пользоваться простыми, но понятными конструкциями.
иначе ты будешь делать другой скрипт, и воткнешь непонятную конструкцию не на то месо. Как попытался сейчас поступить с htmlspecialchars
 

kesha

Новичок
понимаю как оно работает, я же сам писал код, ниоткуда его не выдерал...
 

Фанат

oncle terrible
Команда форума
kesha
ты либо не понял, что я тебе сейчас написал, либо я прав, а ты не понимаешь, что пишешь в скрипте.
вот твой вопрос:
как сделать, чтобы последние \n не переформатировались в <br>?
зачем тебе это нужно было?
 

kesha

Новичок
2 Drimmer, Д. Коггзолл утверждает, что регулярные выражения работают медленнее строковых функций...
сравни сам, вставляешь код:
Записываешь первой строкой сценария
PHP:
define("START", microtime(true));
, для php 5
в конце сценария:
PHP:
printf(%.5f, microtime(true-START));
 

kesha

Новичок
Фанат, я не говорил, что пробовал, или что РВ работают медленнее, это утверждает Д. Коггзолл, ну и чтобы сравнить работу функций дал вот такой совет )))
 

Фанат

oncle terrible
Команда форума
ты привел здесь код
с помощью которого предлагаешь узнать, какой скрипт будет работать медленнее
ты сам его пробовал?
 

Фанат

oncle terrible
Команда форума
а что за скрипт? что он делает?
и какие результаты?
 

kesha

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

Фанат

oncle terrible
Команда форума
круто!
ты открыл мне глаза!
а теперь попробуй ещё раз ответить на мой вопрос.
ты пробовал этот скрипт? с каким результатом?
 

kesha

Новичок
та пробовал, конечно... когда тестировал на скорость PCRE и POSIX, это учебный скрипт. Результат был разный
 

Фанат

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

почему бы не научиться отличать большие цифры от микроскопических?
 
Сверху