Я пытаюсь разобрать веб-сайт и получить имя или URL-адрес изображения.PHP Preg_match Изображение с url
Пример URL: http://www.theworkingmanstore.com/georgia-gr14-infants-romeo.aspx
Есть 6 изображений или более в одном <td>
, и я только хочу, чтобы получить первый IMG SRC в этой <td>
.
Я уверен, что это возможно, возможно, с Dom Parser, но у меня нет опыта с ним.
Любая помощь будет оценена по достоинству.
Благодаря
$html = file_get_contents($url);
$reg = '/img src=["\']?([^"\' ]*)["\' ]/';
preg_match_all($reg, $html, $m);
$arr = array_map(function($v){
return trim(str_replace(array('img src=', 'http://www.theworkingmanstore.com'), '', $v), '"');}, $m[0]);
print_r($arr)
Выход: Это вывод из регулярных выражений
Array ( [0] => /images/logo2.png [1] => /images/mod_head_category_lt.gif [2] => '/images/products/display/GR14_EXTRALARGE.jpg' [3] => '/images/products/thumb/GR14_EXTRALARGE.jpg' [4] => '/images/products/thumb/GR14_8_EXTRALARGE.jpg' [5] => '/images/products/thumb/GR14_5_EXTRALARGE.jpg' [6] => '/images/products/thumb/GR14_3_EXTRALARGE.jpg' [7] => '/images/products/thumb/GR14_42_EXTRALARGE.jpg' [8] => '/images/products/thumb/GR14_2_EXTRALARGE.jpg' [9] => /images/freeshipping.jpg [10] => /images/facebook_32.png [11] => images/twitter_32.png [12] => images/googleplus_32.png [13] => images/pinterest_32.png [14] => /images/payments.gif [15] => /images/brands/the-working-man.jpg )
Пробовал на дом Parser предложение:
$html = file_get_contents($url) ;
$dom = new DOMDocument();
$dom->loadHtml($html);
$xpath = new DOMXPath($dom);
echo $xpath->evaluate(
'string(//td/a[@id = "Zoomer"]/descendant::img[1]/@src)'
);
Got Ошибка в качестве вывода: Внимание: DOMDocument: : loadHTML() [domdocument.loadhtml]: тег nav недействителен в Entity
Вы говорите, что у вас нет опыта работы с DOM парсер, но это вполне может быть прекрасное время, чтобы узнать, как использовать его. Скорее всего, вы столкнетесь с недостатками использования регулярных выражений, чтобы снова анализировать HTML в будущем, возможно, даже в этом самом проекте. Regexes просто не справляются с задачей разбора произвольного HTML. –