Düzenli ifadeler yardım

2 Cevap php

Ben aşağıdaki HTML olsaydı:

<li><a href="aaa"> Thisislink1</a></li>
<li><a href="abcdef"> Thisisanotherlink</a></li>
<li><a href="12345"> Onemorelink</a></li>

Her bir bağlantı uzunluğuna ve değerinde farklı yerde.

Nasıl bağlantı içinde değerleri arayabilirsiniz: bir arama ifadesi ile (IE Thisislink1, Thisisanotherlink ve Onemorelink), 'Başka' demek. Yani bu örnekte, sadece 'Thisisanotherlink' iade edilecekti, ama ben 'bağlantı' için arama ifade değiştirdi, sonra her 3 değerler iade edilecektir.

2 Cevap

Regex kullanmayın. Kullan DOMDocument.

Bu iki aşamada yapılması gereken:

  1. Belgedeki tüm bağlantıları metin ayıklayın. XSL veya XPath bu amaç için çalışılabilir gerekir. Eğer, metin ayıklamak metin (daha sonra bu bilgi ihtiyacımız olacak iseniz, olmayabilir) elde nerede söylüyorum, o ve metin bilgileri ekleyebilirsiniz böylece etrafında DOM bir kopyasını tutmak gibi. Bir alternatif olarak, sadece metin href niteliğin içeriğini eklemek tutun.

    Tüm ihtiyacınız metni (örneğin başlık özelliklerini, ya da <a href><img alt></a> tip yapıların alt metin ayıklamak için emin olun.

  2. Aradığınız ifade için ekstre metnini arayın.

  3. (İsteğe bağlı) gelen metni toplanan ne eleman anlamaya geri DOM harita, ve bunu vurgulamak için daha önce ayarlanmış bilgileri kullanabilirsiniz. Eğer href niteliği ekstre, sadece bu ve eşleşen metin kullanarak yeni bir bağlantı yapabiliriz.