2012-01-10 2 views
0

Я собирание информации с удаленного сайта, и я застрял с этим немного HTML:Собирание информации с удаленного сайта

<div> 
     <a onclick="javascripthere" href="#"> 
      <img width="110" height="160" alt="" src="imageurlhere"> 
      {variable sized string} 
     </a> 
     <br>2012/01/10 17:35:20<br> 
     <img alt="{variable sized string}" src="imageurlhere"> 
</div> 

Из выше HTML я должен забрать 2 «{ переменная размерная строка} ". Они могут быть любыми типами символов (a-zA-Z0-9 и пробелы/другие символы), и я не могу понять, какое регулярное выражение или php использовать для получения этих двух строк.

Любые предложения?

ответ

0

Вы можете использовать DOMDocument, чтобы сделать это вместо использования регулярных выражений, которые не идеальны для синтаксического разбора HTML или XML. Ваш код будет намного чище и легче читать для начала.

Например:

$doc = new DOMDocument(); 
$doc->loadHTML("<html><body><img alt="{variable sized string}" src="imageurlhere"></body></html>"); 
$images = $doc->getElementsByTagName('img'); 
foreach($images as $image) { 
    echo $image->getAttribute('alt'); 
} 

Есть целый ряд проектов, которые завернут DOMDocument с более простыми интерфейсами, такими как phpquery (JQuery как селекторы для навигации по DOM) и Simple HTML DOM Parser.

0
$preg_match("/<img.*?>(.*?)<\/a>/", $string, $match); 

//$match[1] is your first string 

$preg_match("/<img alt=\"(.*?)\"/", $string, $match2); 

//match2[1] is your second string. 
Смежные вопросы