PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (25): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Найдено сообщений: 374
VestCoastman
Отправлено: 11 Августа, 2013 - 19:06:25 • Тема: Группировка объектов в группе • Форум: Регулярные выражения
Ответов: 3 Просмотров: 260
nerv пишет: вариант
PHP:
скопировать код в буфер обмена
$text = '^#""\'"some+text?&-amp;gdsf""&fs&q-uot;
^#""\'"hello+some+text2&-amp;gd?sf&q-uot;""&fs&q-uot;
// P.S. Форум съедает html сущности, по этому стоят минусы(там их быть не должно)' ;
echo $text ;
Нет, вы что. А если таких амперсандов будет не 1-2, а куча))
Вообщем тему можно закрывать, вопрос решил другим образом.
VestCoastman
Отправлено: 10 Августа, 2013 - 22:47:23 • Тема: Несколько вопросов по оптимизации • Форум: Вопросы новичков
Ответов: 2 Просмотров: 145
Мелкий пишет: Оптимизировать - не знаю, а вот откомментировать что происходит, какие теги и параметры есть и что делать для добавления новых - стоит.
Комментарии добавил.
Мелкий пишет: В зависимости от того, какая регулярка и какой цикл.
Регулярки те, что выше, которые использует preg_replace_callback.
VestCoastman
Отправлено: 10 Августа, 2013 - 19:39:31 • Тема: Несколько вопросов по оптимизации • Форум: Вопросы новичков
Ответов: 2 Просмотров: 145
1. Можно ли оптимизировать мои каракули ниже? Если да, то на что обратить внимание?
"Код" (Отобразить )
Некоторые вещи форум съедает, по этому вот ссылка на пастебин(http://pastebin[dot]com/zp0zRXeH)
PHP:
скопировать код в буфер обмена
class bbcode
{
private static function escapebb( $text ) {
return $text ;
}
private static function bb_dual( $text ) {
$regex = '#\[(b|i|u|s|quote)]((?:[^[]|\[(?!/?(b|i|u|s|quote)])|(?R))+)\[/(b|i|u|s|quote)]#' ;
if ( is_array ( $text ) ) { $text = '<' . $text [ 1 ] . '>' . $text [ 2 ] . '</' . $text [ 1 ] . '>' ; } }
private static function bb_code( $text ) {
#'; if ( is_array ( $text ) ) { $text = '<code>' . self :: escapebb ( $text [ 1 ] ) . '</code>' ; } }
private static function bb_align( $text ) {
$regex = '#\[(left|center|right)]((?:[^[]|\[(?!/?(left|center|right)])|(?R))+)\[/(left|center|right)]#' ;
if ( is_array ( $text ) ) { $text = '<p align="' . $text [ 1 ] . '">' . $text [ 2 ] . '</p>' ; } }
public static function parse( $text )
{
$text = self :: bb_code ( $text ) ;
'/\[url\](.*)\[\/url\]/isU' ,
'/\[url=(?:' | ")((ht|f)tps?:(?:\/\/)[^<]+)(?:'|" ) \] ( .* ) \[ \/ url\] / isU'
);
$replace = array(
' < a href= "$1 " > $1 </ a> ',
' < a href= "$1 " > $3 </ a> ',
);
$text = preg_replace($patern, $replace, $text);
$text = self::bb_dual($text);
$text = self::bb_align($text);
$text = nl2br($text);
return $text;
}
}
2. Что работает быстрей, preg_replace_callback или цикл?
3. Нормальная ли скорость загрузки страницы ~0.0038 сек.?
VestCoastman
Отправлено: 09 Августа, 2013 - 16:13:14 • Тема: Группировка объектов в группе • Форум: Регулярные выражения
Ответов: 3 Просмотров: 260
Имеется текст
CODE (
htmlphp ):
скопировать код в буфер обмена
^#""'"some+text?&-amp; gdsf""&fs&q-uot;
^#""'"hello+some+text2&-amp; gd?sf&q-uot; ""&fs&q-uot;
// P.S. Форум съедает html сущности, по этому стоят минусы(там их быть не должно)
Как из этого вырезать это?
Пробовал так, но естественно безуспешно, т.к. регулярка проходит поочередно по ( & a m p ; )
VestCoastman
Отправлено: 08 Августа, 2013 - 17:16:35 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
Мелкий пишет: VestCoastman пишет: В итоге, мы получим примерно такой вывод на страницу
Ну и куда amp потеряли?
Случайно стер)
Хорошо, тогда другой вопрос, как обработать амперсанд (&)? Ведь preg_replace съедает каждый символ, а не всю строку &. Например как в регулярке выше
Должен обрабатываться не "&", а "&"
VestCoastman
Отправлено: 08 Августа, 2013 - 16:22:31 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
Мелкий пишет: VestCoastman пишет: Т.е. вы предлагаете хранить &" - это в базе?
Именно.
Неудобное решение вопроса обновить сообщения согласно обновившемуся парсеру, но парсер обновляется ещё реже, чем сообщения.
Допустим это так. Мы записываем в базу такой код, например
Обрабатываем его htmlspecialchars(), получаем
И после этого мы ее обрабатываем функцией, например bbcode(), которая выделяет ссылки
(((ht|f)tps?:\/\/)[\w\/\?\.\=\&]+)/is -патерн
В итоге, мы получим примерно такой вывод на страницу
VestCoastman
Отправлено: 08 Августа, 2013 - 15:47:36 • Тема: Хранение и парсинг BB-кодов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 560
Мелкий пишет: Почему его на выходе ждёт htmlspecialchars?
Если он уже был применён при обработке и перед записью в базу?
Я такого не говорил.
Т.е. вы предлагаете хранить &" - это в базе?
Страниц (25): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB