2016-09-05 9 views
0

img srcを取得するページを調べると、sthが次のように表示されます。/images/March/img1.jpeg。しかしあなたが知っているように、それは実際のアドレスではありません。私はこのページをかき集め、適切なsrc値を取得したい。どうやってやるの? thxを事前に入力してください。xpathで正確なimg srcを取得する方法

<?php 
$content=file_get_content('example.com'); 
$dom= new DOMDocument(); 
$dom->loadHTML($content); 
$xpath=new DOMXpath(); 
$img=$xpath->query("(//img)[2]/@src"); 
foreach($img as $val){ 
    $images=$val->nodeValue;//just returns img/march/img1.jpeg 
          //instead of www.example.com/img..... 
} 
?> 
+0

さてあなたはそれが存在しない場合、あなたが要求しているドメインがとても 'src's値にそれを追加知っています。 – chris85

答えて

0

あなたはこのように、手動で絶対パスを作成する必要があります。

<?php 

$content = file_get_contents('example.com'); 

$dom  = new DOMDocument(); 
$dom->loadHTML($content); 

$xpath = new DOMXpath(); 
$img = $xpath->query("(//img)[2]/@src"); 

// Make Absolute Url 
function getAbsUrl($value, $baseurl) 
{ 
    $Parsed = parse_url($value); 

    if (empty($Parsed['host'])) { 
     // Relative 
     return rtrim($baseurl, '/') . '/' . ltrim($Parsed['path'], '/'); 
    } else { 
     return $value; 
    } 
} 

foreach ($img as $val) { 
    $images = getAbsUrl($val->nodeValue, 'http://www.example.com/'); 
} 
+0

ブラウザのアドレスバーに '$ images'を置くと、404エラーが見つかりません。あなたはこの[リンク](http://www.espc2016.com)を見てみることができますか? –

+0

@davidcamry私が見る通り、http://esaconferencebureau.com/2016-eventsでホストされているiframeにロードされたすべてのページ/ 16A12なので、これをホストに設定する必要があります:esaconferencebureau.comこれはイメージURLを次のようにします:http://esaconferencebureau.com/images/default-source/16a12_images/604479_a2-poster-espc_lr_03---lowr.jpg? sfvrsn = 0 – MoeinPorkamel

関連する問題