2015-05-16 2 views
2

Я прочесываю некоторый html с веб-сайта, используя php simple html dom, который включает в себя несколько изображений.
Однако изображения не указывают на сайт правильно. Например, ниже приведен пример одного из изображений, где вы можете видеть, что он не указывает на сайт.
Можно ли динамически изменять адреса, чтобы указать на сайт, напримерСкремблирование html с URL-адресами с сайта

http://www.url.com/bilder/flags_long/United States.gif 

HTML код пример

<img src="/bilder/flags_long/United States.gif" align="absmiddle" title="United States" alt="United States" border="0"> 

образца:

include('simple_html_dom.php'); 
$sum_gosu = file_get_html("http://www.gosugamers.net/counterstrike/news/30995-starladder-is-back-with-the-thirteenth-edition-of-starseries"); 
$gosu_full = $sum_gosu->find("//div[@class='content light']/div[@class='text clearfix']/div", 0); 
+0

вы можете объединить два текста вместе. Я имею в виду URL-адрес веб-сайта и URL-адрес изображения. '$ URL = $ PageURL. $ IMGsrc' –

ответ

1

Как насчет конкатенации фактического URL вы извлекли документ и относительные пути изображения. Просто чтобы дать представление о том (это не тестировалось, и вы обязательно должны сделать некоторые проверки, является ли атрибут изображения ЦСИ родственником или, может быть абсолютным, в некоторых случаях):

<?php 
    $url = 'http://www.url.com/'; 
    $html = file_get_html($url); 
    $images = array(); 

    foreach($html->find('img') as $img) { 

     // Option 1: Fill your images array (in case you only need the images) 
     $images[] = rtrim($url, '/') . '/' . ltrim($img->src, '/'); 

     // Option 2: Update $img->src inside your $html document 
     $img->src = rtrim($url, '/') . '/' . ltrim($img->src, '/'); 

    } 

?> 

UPDATE Согласно примеру коды моему пример может выглядеть как следует:

<?php 
    include('simple_html_dom.php'); 
    $sum_gosu_url = "http://www.gosugamers.net/counterstrike/news/30995-starladder-is-back-with-the-thirteenth-edition-of-starseries"; 
    $sum_gosu = file_get_html($sum_gosu_url); 
    $gosu_full = $sum_gosu->find("//div[@class='content light']/div[@class='text clearfix']/div", 0); 

    foreach($gosu_full->find('img') as $img) { 
     $img->src = $sum_gosu_url . $img->src; 
    } 
?> 

После этого IMG SRC атрибутов внутри ваш $ gosu_full документ должен быть фиксированным и разрешимым (загружаемым клиентом). Надеюсь, что это помогает и что я на самом деле понимаю вашу проблему :)

+0

Что я имел в виду, так это то, что у меня длинная строка, содержащая множество html-тегов, а также изображения. Эти изображения, которые я хотел бы изменить на правильный путь, если они не работают –

+0

Итак, откуда взялась строка? Это файл на вашем веб-сервере или это страница, которую вы извлекли из удаленного URL-адреса? Поскольку вам определенно нужно знать, с каким URL вы должны префикс относительных путей ваших изображений, которые в первом случае будут вашим собственным доменом, а во втором случае - доменом, из которого вы извлекли html-документ. Извините, когда я ошибаюсь, но это то, что я понял :) – tworabbits

+0

Если я ошибаюсь, отправьте пример кода, как вы загружаете свою строку html. – tworabbits

0
$url="http://www.url.com"; 
$Chtml = file_get_html($url); 
$imgurl=Chtml->find("img",0)->src; 
echo $url.$imgurl; 
+0

Ницца! Некоторые базовые объяснения кода и ответы на этот вопрос будут очень полезными. – Christophe

Смежные вопросы