时间:2013-04-11 11:14:53

标签: php url web tags

<?php echo file_get_contents ("http://www.google.com/"); ?>

但我只想在网址中获取标签的内容......怎么做......? 我需要回显标签之间的内容....而不是整个页面

3 个答案:

答案 0 :(得分:1)

请参阅此PHP manualcURL,这也可以为您提供帮助。

您也可以使用用户定义函数而不是file_get_contents():

function get_content($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
  }


 echo get_content('http://example.com');

希望,它会解决您的问题。

答案 1 :(得分:1)

我认为你想从文件中的特定html标签中提取内容。为此,您可以使用正则表达式。但是,请查看以下链接以解析HTML文档文件:

http://php.net/manual/en/class.domdocument.php

答案 2 :(得分:0)

libxml_use_internal_errors(true);

$url = "http://stackoverflow.com/questions/15947331/php-echo-file-get-contents-how-to-get-content-in-a-certain-tag";

$dom = new DomDocument();
$dom->loadHTML(file_get_contents($url));

foreach($dom->getElementsByTagName('a') as $element) {
    echo $element->nodeValue.'<br/>';
} 

exit;

更多信息:http://www.php.net/manual/en/class.domdocument.php

在那里,您可以看到如何按idclass选择元素,如何获取元素的属性值等。

注意:最好通过cURL而不是get_file_contents获取内容。例如:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

另请注意,在某些网站上,您必须指定CURLOPT_USERAGENT等选项,否则可能无法返回内容。

以下是其他选项:http://www.php.net/manual/en/function.curl-setopt.php