Iğne sonra metin olsun?

3 Cevap php

I bir dize aşağıdaki metni olsaydı:

<h4>Tom</h4>
<p>One Paragraph</p>
<p>Two Paragraph</p>

Ben bu gibi bir çıktı elde etmek için (o dize ayrıştırmak için ne kod gerekir i <h4> etiketinin içinde ne olduğunu bilmiyordum eğer?

 <p>One Paragraph</p>
 <p>two Paragraph</p>

Teşekkürler!

3 Cevap

stripios başlangıç ​​almak için kullanın </h4>. Dengelemek için </h4> uzunluğunu ekleyin ve sonra ofset sonra tüm metni almak için substr kullanın.

Örnek:

$str = '....Your string...';
$offset = stripos($str, '</h4>');
if ( $offset === false ){
    //error, end of h4 tag wasn't found
}
$offset += strlen('</h4>');
$newStr = substr($str, $offset);

Ben HTML herhangi daha karmaşık alır ya da HTML kontrol etmezsek, bir HTML parser kullanmak isteyebilirsiniz işaret olmalıdır. Bu çok daha sağlam ve başarısız daha az ise, o (örneğin) karşılaşır < /h4 > yerine </h4>. Bununla birlikte, bu durumda overkill.

Gönderdiniz örnek HTML veri setinin özellikle temsilcisi sürece, daha kolay ve daha güvenilir gibi this one gibi bir HTML ayrıştırıcı kullanmak bulabilirsiniz.

HTML düzenli ifadelerle (teknik olarak, imkansız) güvenilir ayrıştırmak için çok zordur, ve ayrıştırıcı size ilgilendiğiniz düğümleri bulmak için çok basit bir yol verecek

Yukarıdaki HTML ilgilendiğiniz tüm ise o zaman uygun bir regexpi zanaat olabilir. Daha genel bir şey için ben çözümleyici rotasını keşfetmek istiyorum.