PHP HTML vücudun içerik maç için Regex

3 Cevap php

Ben, örneğin, bir elementin etiketleri arasındaki içeriğini eşleştirme için php bir regex ihtiyacınız <body> ve </body> perl uyumlu preg_match.

Şimdiye kadar birlikte çalıştı:

// $content is a string with html content

preg_match("/<body(.|\r\n)*\/body>/", $content, $matches);

print_r($matches);

... Ama çıktısı boş bir dizidir.

3 Cevap

Sadece nokta maç yeni hatlar da dahil olmak üzere tüm karakterleri, sahip s değiştirici eklemek zorunda:

preg_match("/<body.*\/body>/s", $content, $matches);

gibi doc açıkladı: http://nl2.php.net/manual/en/reference.pcre.pattern.modifiers.php

Varsayılan bir satır tarafından perl sıradanifade maç

Eğer / gibi ekleyerek bir çok çizgi arama yapmak istediğinizi belirtmek için veya son sonra yaşıyorum

ex:

$> perl -e 'print $1 if "bla\nbla\n<body>\nfirst line\n second line\n</body>\nbla" =~ /^.*<body>(.*)<\/body>.*$/s'

see: http://www.perl.com/pub/a/2003/06/06/regexps.html

Neredeyse bir yinelenen bir soru:

Have a look here :
http://stackoverflow.com/questions/356340/regular-expression-to-extract-html-body-content

Tam aynı sorun olmasa bile size yardımcı olabilir.