HTML kaldırmak için php regex

6 Cevap php

Başlamadan önce, strip_tags () çalışmıyor.

, şimdi

I've got some data that needs to be parsed, the problem is, I need to get rid of all the HTML that has been formated very strangely. the tags look like this: (notice the spaces)

< p > blah blah blah < / p > < a href= " link.html " > blah blah blah < /a >

Ben çalışıyorum tüm regexs çalışmıyor, ve ben onları iş yapmak için regex biçimlendirme hakkında yeterli bilmiyorum. Ben etiketleri içinde bir şey korumak umurumda değil, ve ben eğer bir bağlantı içinde metnin kurtulmak için tercih ediyorum.

Herkes herhangi bir fikrin var mı?

(Ben gerçekten sadece oturup bir gün düzenli ifadeler öğrenmek gerekir)

6 Cevap

Does

preg_replace('/<[^>]*>/', '', $content)

çalışır?

strip_tags() çalışacak önce bir değişkene html_entity_decode() kullanırsanız strip_tags()

<?php
$text = '< p > blah blah blah < / p > < a href= " link.html " > blah blah blah< /a >';
echo strip_tags(html_entity_decode($text));
?>

-Aptal kanıt değildir, ama ne yayınlanmıştır için çalışacak bir çözüm:

s/<[^>]*>//g

Garip Biçimli? Bu doğru olsa da geçerli HTML nedir? Bu durumda ben normal ifadeler ile temas olmaz. Bunun kötü bir fikir neden bu yanlış gidebilir ve nasıl örnekler kalabalıktır. Bunun yerine, örneğin, gereksiz beyaz alanı temizlemek için HTML Tidy bunu kullanmak istiyorum.

Bu deneyin ve bana bildirin.

<?php
$text = '< p > blah blah blah < / p > < a href= " link.html " > blah blah blah< /a >';
echo strip_tags($text);
echo "\n";
echo strip_tags($text, '<p><a>');
?>

http://ca3.php.net/strip_tags muhtemelen neye ihtiyacınız olduğunu.