나는 웹 사이트를 구문 분석하고 이미지의 이름이나 URL을 잡으려고합니다.PHP Preg_match 이미지 URL에서
예 URL : http://www.theworkingmanstore.com/georgia-gr14-infants-romeo.aspx
는 하나의 <td>
6 개 이미지 이상이 있고 난 단지 그 <td>
의 첫 번째 IMG의 SRC를 싶어.
아마 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 )
출력은 다음과 같습니다
$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)'
);
출력으로
있어 오류 : 경고 : DOMDocument를 : : loadHTML() [domdocument.loadhtml] : Tag nav가 Entity에서 유효하지 않습니다.
당신은 당신이 DOM 파서 경험이없는 말, 그러나 이것은 잘 사용하는 방법을 배울 수있는 완벽한 시간이 될 수 있습니다. 미래에 HTML을 다시 구문 분석하기 위해 정규 표현식을 사용하는 단점을 보게 될 가능성이 있습니다. 아마도이 프로젝트에서도 마찬가지 일 것입니다. Regexes는 임의의 HTML을 파싱하는 작업까지는하지 않습니다. –