我使用「獲取」一個HTML頁面,並解析該腳本顯示僅在.jpg圖像,但我需要做一些修改,當我這樣做,只是失敗...爲什麼這個foreach失敗?
這工作:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
echo '<img src='.$e->src .'><br>';
但是,有一些問題......我只想顯示超過一定大小的圖像,再加上一些網站不顯示完整的URL在img標籤,所以需要嘗試解決這個問題...所以我做了以下幾點:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
$image = $e->src;
// check to see if src has domain
if (preg_match("/http/", $e->src)) {
$image = $image;
} else {
$parts = explode("/",$url);
$image = $parts['0']."//".$parts[1].$parts[2].$e->src;
}
$size = getimagesize($image);
echo "<br /><br />size is {$size[0]}";
echo '<img src='.$image.'><br>';
這窩rks,但只返回第一個圖像。
在下面的例子中鏈接有5張,其中第一個代碼所示但隨着SRC是沒有前導域
Example link as mentioned above
有沒有更好的辦法做到這一點不顯示呢?爲什麼循環失敗?
的arent你應該到'{}'的您的foreach內容裏面附上?這樣會更清晰 – ianace
@ianace - doh !!!!如果你不修改,你實際上並不需要它,但在這種情況下,我是一個什麼樣的div!我的壞人,抱歉的人和感謝 - 你可以在這個該死的代碼裏面得到太多 - 就像坐在一輛寶馬7系列中,當你打開窗戶的窗戶時試圖找出加熱器! –