Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Очистить html от лишних тегов и атрибутов

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

 
 автор: Eugene77   (12.02.2008 в 13:35)   письмо автору
 
   для: kasmanaft   (10.02.2008 в 11:41)
 

Да,пожалуй, я мог бы и сам догадаться.
Просто ещё не совсем привычные материи - поэтому мысли туго в голове шевелятся. Спасибо!
Лучше вашего варианта мне ничего не придумать!

   
 
 автор: kasmanaft   (10.02.2008 в 11:41)   письмо автору
 
   для: Eugene77   (10.02.2008 в 10:04)
 

В таком случае пользователи не смогут использовать "<>".
Ну, можете "попросить" их использовать &lt; &gt; .. А может вообще перебьются :)

Может быть, вручную заменить все "<>" (не являющиеся частью тегов) перед проверкой. Всё равно заменять ведь придется.. Так что можно и упростить выражение.

PS "(.*)" по краям - лишнее..

   
 
 автор: Eugene77   (10.02.2008 в 10:04)   письмо автору
 
   для: kasmanaft   (01.02.2008 в 19:09)
 

Начитавшись статей(спасибо за замечательные ссылки) я стал пробовать размышлять.
Но никак не пойму почему бы не упростить вашу регулярку, например до такого состояния:
'#(.*)<([a-z][a-z1-6]*)\b[^>]*>([^<>]*)</\\2\b[^>]*>(.*)#is'

?

   
 
 автор: Eugene77   (08.02.2008 в 18:48)   письмо автору
 
   для: rombikr   (07.02.2008 в 17:02)
 

Да, дальше уж не сложно...
Если парность тегов проверена, то лишние можно откинуть или так или strip_tags()
Ну а атрибуты регуляркой, но она совсем простая

   
 
 автор: rombikr   (07.02.2008 в 17:02)   письмо автору
 
   для: Eugene77   (17.01.2008 в 15:15)
 

Во так работает:

 
$h = fopen("http://marketing.rbc.ru/","r");
while (!feof ($h)) { 
$content = fgetss($h,1024,'<br><col><hr><img><h1></h1><h2></h2><h3></h3><h4></h4><h5>
</h5><h6></h6><a></a><b></b><blink></blink><blockquote></blockquote><caption>
</caption><center></center><col></col><colgroup></colgroup><em></em><font></font><hr>
</hr><li></li><marquee></marquee><ol></ol><p></p><pre></pre><s></s><small></small><span>
</span><strike></strike><strong></strong><sub></sub><sup></sup><table></table><tbody></tbody><td></td><tfoot></tfoot><th></th><thead></thead><tr></tr><tt></tt><u></u><ul></ul>'); 
echo $content;
  } 

   
 
 автор: kasmanaft   (01.02.2008 в 19:09)   письмо автору
 
   для: Eugene77   (31.01.2008 в 17:10)
 

Да, было бы совсем неплохо :))
Да только я сам не читал ни одной.... Мануал да Фридла чуть-чуть...
(Добавил: и форум! понимание приходит с практикой..)

Может быть, стоит вот это прочитать:
http://www.phpclub.ru/detail/article/regexp_1
http://www.phpclub.ru/detail/article/regexp_2

   
 
 автор: Eugene77   (31.01.2008 в 17:10)   письмо автору
 
   для: kasmanaft   (29.01.2008 в 18:50)
 

Логично.
Спасибо!
Здорово помогли!
Ещё бы статью про "!?" порекомендовали...

   
 
 автор: kasmanaft   (29.01.2008 в 18:50)   письмо автору
 
   для: Eugene77   (29.01.2008 в 17:47)
 

Она удаляет <td>..</td> и всё, что попало между ними. Попал не_тег ( =] ) "< img>" - удалила и его.

var_dump(check_pair_tags("< img>")) вернет false.. Всё верно.
var_dump(check_pair_tags("<img>")) - true....

   
 
 автор: Eugene77   (29.01.2008 в 17:47)   письмо автору
 
   для: kasmanaft   (28.01.2008 в 20:28)
 

>
>< img> - это не тег! и ваше выражение его попросту не трогает (а не заменяет).
>что "<td>< img></td>", что "<td>blablabla</td>"...
>
Если бы..
В том-то и дело, что трогает и удаляет, Иначе функция возвратила бы false!
True она возвращает только если удалось удалить всё начисто.

   
 
 автор: kasmanaft   (28.01.2008 в 20:28)   письмо автору
 
   для: Eugene77   (28.01.2008 в 20:19)
 

Почему это должно быть ошибкой?

Тег это: открывающая <, идентификатор (вроде они так зовутся), начинающийся с буквы, может содержить буквы,цифры,знак подчеркивания. Через пробел идут атрибуты, потом ">".

< img> - это не тег! и ваше выражение его попросту не трогает (а не заменяет).
что "<td>< img></td>", что "<td>blablabla</td>"...

PS я не касмонафт ;-)

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования