Получение изображения с помощью xpath или другим способом - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно получить изображение с удаленной страницы, я попробовал xpath, но мне сказали, что он не будет работать, потому что у img нет значения узла Затем мне посоветовали использовать getAttribute, но я не знаю, как заставить его работать.

Есть предложения? Это мой код

<?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>";

?>

Ответы [ 2 ]

1 голос
/ 15 марта 2012

если это обычный xhtml, img не имеет значения, вам нужно значение img / @ src

1 голос
/ 15 марта 2012

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

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