Форум → Программирование → PHP для идиотов → Помогите с парсингом текста
Помогите с парсингом текста
Страницы: ← Следующая страница →
-
-
-
24 августа 2008 г. 18:36, спустя 1 минуту 18 секунд
$x=preg_match('#(.*)<!– more –>#si', $text);
вроде так. если не секрет как сделали закрытие открытых тагов?)
я все видел)))
ЗЫ 700 -
24 августа 2008 г. 18:37, спустя 16 секунд
$x=preg_match('#(.*)<!– more –>#si', $text);
вроде так. если не секрет как сделали закрытие открытых тагов?)
׳, "Когда встречается тэг <!– more –> весь текст следующий после этого тэга нужно открутить". А не до ))
P.S. Пост изменен при поддержки Старого_Мавра :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
24 августа 2008 г. 18:37, спустя 32 секунды
CTAPbIu_MABP, бугаго :)))https://smappi.org/ - платформа по созданию API на все случаи жизни -
-
24 августа 2008 г. 18:40, спустя 2 минуты
׳, почитай описание xBB в частности про конечные автоматы
[реклама]спонсор постов Адворда[/реклама]
добалено потом#(.*)<!– more –>#si
мне почемуто кажеться что в этой регулярке !– и –> это последовательности и насколько корректно они будут работать я незнаю -
-
24 августа 2008 г. 18:51, спустя 6 минут 7 секунд
Таги закрываются этой функцией:function close_dangling_tags($html) {
#put all opened tags into an array
preg_match_all ( "#<([a-z]+)( .*)?(?!/)>#iU", $html, $result );
$openedtags = $result [1];
#put all closed tags into an array
preg_match_all ( "#</([a-z]+)>#iU", $html, $result );
$closedtags = $result [1];
$len_opened = count ( $openedtags );
# all tags are closed
if (count ( $closedtags ) == $len_opened)
return $this->output ( $html );
$openedtags = array_reverse ( $openedtags );
# close tags
for($i = 0; $i < $len_opened; $i ++) {
if ($openedtags [$i] != 'hr' && $openedtags [$i] != 'br' && $openedtags [$i] != 'img') {
if (! in_array ( $openedtags [$i], $closedtags )) {
$html .= '</' . $openedtags [$i] . '>';
} else {
unset ( $closedtags [array_search ( $openedtags [$i], $closedtags )] );
}
}
}
return $this->output ( $html );
}
Ща попробуем ваши варианты. Заранее спасибо. -
24 августа 2008 г. 19:05, спустя 14 минут 19 секунд
if ($openedtags [$i] != 'hr' && $openedtags [$i] != 'br' && $openedtags [$i] != 'img') {
еще тег meta сюда можно запихнуть -
24 августа 2008 г. 19:43, спустя 38 минут 22 секунды
В общем, есть два варианта:$out=explode("<!– more –>", $truncate);
If ($out != '') $truncate = $out[0];
unset ( $out );
или
preg_match('#(.*)<!– more –>#si', $truncate, $out);
If (!empty($out)) $truncate = $out[0];
unset ( $out );
Какой лучше и быстрее? -
24 августа 2008 г. 20:00, спустя 16 минут 22 секунды
$out=explode("<!– more –>", $truncate);
If ($out != '') $truncate = $out[0];
unset ( $out ); -
24 августа 2008 г. 20:18, спустя 18 минут 9 секунд
а чего ты $out сраниваешь со строкой? это ж массив -
24 августа 2008 г. 20:20, спустя 2 минуты 29 секунд
If ($out[0] != '') $truncate = $out[0];
Так лучше? Забыл видимо. Просто нужно если ни чего не заменится выдать текст как он есть.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!