PHP - 从类内部获取文本

时间:2015-10-09 17:07:33

标签: php

我正在尝试使用PHP从网页收集文本,这样当网站上的文字更新时,它也会自动更新。

以网站http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500为例 - 在课程robux-text内,有一个数字为R $ 20,003 - 我的目的是将文本从Roblox传到我的网站。

我尝试使用代码,但无济于事 - 我遇到了以下错误:

  

警告:file_get_contents():php_network_getaddresses:getaddrinfo   失败:名称解析暂时失败   第9行/home/public_html/index.php

     

警告:   的file_get_contents(http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500):   无法打开流:php_network_getaddresses:getaddrinfo失败:   /home/public_html/index.php中名称解析暂时失败   第9行

     

警告:DOMDocument :: loadHTML():在第11行的/home/public_html/index.php中作为输入提供的空字符串

<?php
$html = file_get_contents("http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500");
$DOM = new DOMDocument();
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'robux-text';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach ($nodes as $node) {
  echo $node->nodeValue;
}
?>

2 个答案:

答案 0 :(得分:1)

似乎allow_url_fopen 已停用您的系统(php.ini),这就是您收到错误的原因。

使用curl尝试:

<?php
libxml_use_internal_errors(true);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);

$DOM = new DOMDocument();
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'robux-text';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach ($nodes as $node) {
  echo $node->nodeValue;
}
?>

答案 1 :(得分:0)

您可以通过curl轻松获取网址的html内容。您只需将returntransfer选项设置为true即可。