Preg_match kullanarak bir html elemanı uyan bir sorun olması

2 Cevap php

Ben bir html öğesi maç için çalışıyorum ama $ başlıkları boş olduğu için ben onun eşleşmesini sanmıyorum - kimse beni düzeltebilirsiniz?

Benim preg_match:

   preg_match_all("~<td align=\"left\" width=\"50%\">[^<]*. <b><a href=\"(.*?)\">[^<]*</a>~i", $main, $titles);

Örnek HTML maç:

//<td align="left" width="50%">1. <b><a title="Wat" href="http://www.exmple.com/q.html">Wat</a></b><br></td>

Ben bir şey eksik?

Herhangi bir yardım için teşekkür ederiz

2 Cevap

title="Wat" <a> etiketi maç için bir şey yok.

Ama bunu ayrıştırmak için bir regex kullanarak değil öneririm. Ben PHP ile çok aşina değilim ama ben zaten sizin için işin çoğunu yapacak bir şey vardır eminim.

Benim comment regex söylediğim gibi html ayrıştırmak için çalışırken hiç uygun araç kullanmak durumunda nadiren. Ben henüz bu sorulardan birine tavsiye görmedik çünkü Zend_Dom_Query, Zend Framework inci ecomponetns birinin bir örnek kullanmak Im foing. Yani ...

$dom = new Zend_Dom_Query($htmlHaystack);
$anchors = $dom->query('//td/a[@title]'); // xpath here
if(count($anchors) > 0)
{
  $titles = array();
  foreach($anchors as $element)
  {
     $titles[] = $element->getAttribute('title');
  }
}
else
{
  $title = null;
}