2012-01-23 4 views
0

Сценарий Я использую «получает» в HTML-страницу и разбирает показывает только изображения .jpg внутри, но мне нужно внести некоторые изменения, и когда я сделать это просто не удается ...Почему этот прорыв не работает?

Это работает:

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>'; 

Этот wo rks, но возвращает только первое изображение.

На примере ниже ссылке есть 5 изображений, которые первый код показывает, но не отображает их как SRC без ведущего домена

Example link as mentioned above

Есть ли лучший способ сделать это? И почему петля терпит неудачу?

+0

Арент вы должны вложить внутри '{}' содержание вашего Еогеасп? таким образом было бы намного яснее – ianace

+0

@ianace - doh !!!! вам на самом деле это не нужно, если вы не вносите изменения, но в этом случае я, какой div! Мое плохое, извините, ребята, спасибо, вы можете зайти слишком далеко в этот проклятый код - это похоже на сидение внутри BMW 7 серии, пытаясь понять, как нагреватели выходят, когда у вас открываются окна дерьма! –

ответ

2

Вы, кажется, { отсутствует:

foreach($html->find('img[src$=jpg]') as $e) { 
1

Вы забыли свои скобки:

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>'; 
} 
Смежные вопросы