На страницу 1, 2, 3, 4 След. |
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
1) средствами ПХП вырезать все что между <style> и </style>) из загруженной а переменную $pony Хтмл страничка, вырезать все что между <style> и </style>, остальное нетрогать.
(страничка идет со символами как (\r)?\n, т.е. ХТМЛ страничка это не одна строка)
вырезать все между тегами и также чтоб самих тегов(<style> и </style>) также неосталося
а тут наоборот задача типа
2) средствами ПХП заглотнуть
Также, в пеерменной $pony2 (содержимое пини2 так же как в в случаи 1. )
... средствами ПХП заглотнут из $pony2 Первую Таблицу (<table...>) сверху ...
НО! тама может быть хоть 5 таблиц заключенных друг в друга..
и поместить эту стр. в $pony3
т.е. вот как
А <table ....> lalala <table ....> lalaal </table> </table> Б
-- захватить и в пони3 поместить полность с табле тегами от А до Б |
|
|
|
|
|
VideoPleasure |
captain Keen Опытный |
Зарегистрирован: 22.10.2008
Сообщений: 206
|
Обратиться по нику
|
captain Keen |
Ответить с цитатой | | |
|
1) $pony = preg_replace('|<style.*?<\/style>|si', '', $pony);
2) Не совсем понял, что именно тебе нужно в данном случае |
|
|
|
|
|
|
ctapbiu Опытный |
Зарегистрирован: 06.01.2008
Сообщений: 328
|
Обратиться по нику
|
ctapbiu |
Ответить с цитатой | | |
|
1. $str = preg_replace('#<style(\s[^>]+)?>.*</style>#isU', '', $str);
2. помимо этих таблиц еще таблицы есть?
если нет, то делается
preg_match('#<table(\s[^>]+)?>.*</table>#is', $str, $match);
$str = $match[0]; |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
captain Keen писал(а): |
1) $pony = preg_replace('|<style.*?<\/style>|si', '', $pony);
2) Не совсем понял, что именно тебе нужно в данном случае
|
я сам уже забыл, гыгы
вспомню...
вспомнил, в 2) вырезать все кроме тегов table и все что в них, + сами теги оставить..
|
|
|
|
|
|
VideoPleasure |
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
|
|
VideoPleasure |
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
ага, еще...
как также средствами ПХП вырезать их странички все комментарии
т.е. <!--......-->
+ также они могут быть как начало "<!--" на одной строке, а конеч ... "-->" |
|
|
|
|
|
VideoPleasure |
captain Keen Опытный |
Зарегистрирован: 22.10.2008
Сообщений: 206
|
Обратиться по нику
|
|
|
|
ctapbiu Опытный |
Зарегистрирован: 06.01.2008
Сообщений: 328
|
Обратиться по нику
|
ctapbiu |
Ответить с цитатой | | |
|
captain Keen,
еще модификатор U необходимо добавить, так как при наличии нескольких комментариев регэксп пожадничает и порежет от начала первого, до окончания последнего, то есть:
$pony = preg_replace('|<\!--.*?-->|sU', '', $pony); |
|
|
|
|
|
|
captain Keen Опытный |
Зарегистрирован: 22.10.2008
Сообщений: 206
|
Обратиться по нику
|
captain Keen |
Ответить с цитатой | | |
|
ctapbiu, не порежет. ? не даст. Он до первого закрывающего комментарий тэга работает. Попробуй тестануть этот регэксп на странице со многими комментариями - увидишь.
Если ты используешь модификатор U, то ? не нужен в самом регэкспе.
Так что имеем два варианта:
1) без U
$pony = preg_replace('|<\!--.*?-->|s', '', $pony);
2) c U
$pony = preg_replace('|<\!--.*-->|sU', '', $pony);
Практика, как говорится, критерий истины. Можешь попробовать и убедиться что оба примера рабочие |
|
|
|
|
|
|
ctapbiu Опытный |
Зарегистрирован: 06.01.2008
Сообщений: 328
|
Обратиться по нику
|
|
|
|
captain Keen Опытный |
Зарегистрирован: 22.10.2008
Сообщений: 206
|
Обратиться по нику
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
|
|
VideoPleasure |
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
Цитата: |
Попробуй тестануть этот регэксп на странице со многими комментариями - увидишь.
|
в моей страничке ($pony) пока один коментарий тама... и на первой строке (+ вся строка)
я просто просил чтоб дали пример для вырезки всех - на будущее мне.
эти примеры работают все.
ПС_
$pony_atskaya = explode("\n", $pony); /* неуверен что это все ... */
array_shift($pony_atskaya); /* ... удалит .... */
$pony = implode("\n", $pony_atskaya); /* ... первую строку .... ведь что такое строка в Аски ? */
гыгы... |
|
|
|
|
|
VideoPleasure |
captain Keen Опытный |
Зарегистрирован: 22.10.2008
Сообщений: 206
|
Обратиться по нику
|
captain Keen |
Ответить с цитатой | | |
|
IseeDeadPeople писал(а): |
$pony_atskaya = explode("\n", $pony); /* неуверен что это все ... */
array_shift($pony_atskaya); /* ... удалит .... */
$pony = implode("\n", $pony_atskaya); /* ... первую строку .... ведь что такое строка в Аски ? */
|
IseeDeadPeople, без обид, но вот после такого кода и появляются посты о том, что PHP плохой язык.
Лучше сделать вот так -
Код: |
$pony = explode("\n", $pony, 2);
$pony = $pony[1];
|
|
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21732
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
я необиделся
а насчет того что я в три строки написал, так для меня пока что важно одно - работает код или нет, .. твой вариант конечно проще....
просто я вот смысл параметров дальше второго в "эксплоде" - незнаю
а так спасибо! |
|
|
|
|
|
VideoPleasure |
|