2012-03-15 2 views
0

Мне нужно получить изображение с удаленной страницы, я попробовал xpath, но мне сказали, что это не сработает, потому что img не имеет nodevalue Тогда мне посоветовали использовать getAttribute, но я не хочу знаете, как заставить его работать.Извлечение изображения с использованием xpath или каким-либо другим способом

Любые предложения? Это мой код

<?php 

libxml_use_internal_errors(true); 

//Setting content type to xml! 
header('Content-type: application/xml'); 

//POST Field name is bWV0aG9k 

$url_prefix = $_GET['bWV0aG9k']; 

$url_http_request_encode = strpos($url_prefix, "http://"); 


//Checking to see if url has a http prefix 
if($url_http_request_encode === false){ 
    //does not have, add it! 
    $fetchable_url_link_consistancy_remote_data = "http://".$url_prefix; 

} 
else 
    //has it, do nothing 
{ 
    $fetchable_url_link_consistancy_remote_data = $url_prefix; 
} 



//Creating a new DOM Document on top of pre-existing one 
$page = new DOMDocument(); 

//Loading the requested file 
$page->loadHTMLFile($fetchable_url_link_consistancy_remote_data); 

//Initliazing xpath 
$xpath = new DOMXPath($page); 

//Search parameters 

//Searching for title attribute 
$query = "//title"; 
//Searching for paragraph attribute 
$query1 = "//p"; 
//Searching for thumbnails 
$query2 = "//img"; 


//Binding the attributes to xpath for later use 
$title = $xpath->query($query); 

$paragraph = $xpath->query($query1); 

$images = $xpath->query($query2); 




echo "<remotedata>"; 
//Echoing the attributes 
echo "<title-render>".$title->item(0)->nodeValue."</title-render>"; 
echo "<paragraph>".$paragraph->item(0)->nodeValue."</paragraph>"; 
echo "<image_link>".$images->item(0)->nodeValue."</image_link>"; 
echo "</remotedata>"; 

?> 
+0

Подсказка: Не используйте комментарии, чтобы сказать, что делает следующая строка. '// Установка типа содержимого в xml!' Совершенно лишнее, когда следующая строка говорит 'header ('Content-type: application/xml');'. То же самое со всеми вашими другими комментариями. – Tomalak

+0

Помимо этого: не видя XML, с которым имеете дело, никто не сможет вам помочь. – Tomalak

+0

попробуйте checkin phpquery ... он должен помочь. – hummingBird

ответ

1

вы должны получить исходный атрибут тега изображения.

$images->item(0)->getAttribute('src'); 
+0

Вы предлагаете мне сначала getElementByTagName, чтобы убедиться, что я получаю src только тегов img? –

+0

Я предполагаю, что вы загрузили html в dom. $ query2 = "// img"; // выберем все теги изображений $ images = $ xpath-> query ($ query2); // $ imags выбрали все теги изображений $ images-> item (0) -> getAttribute ('src'); // даст вам значение атрибута src для первого изображения – CoreCoder

+0

да, я загрузил его в dom –

1

, если это нормально XHTML, IMG не имеет значения, что вам нужно значение IMG/@ SRC

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