Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用curl从网页获取内容_Php_Curl_Webpage_Fetch - Fatal编程技术网

Php 使用curl从网页获取内容

Php 使用curl从网页获取内容,php,curl,webpage,fetch,Php,Curl,Webpage,Fetch,首先看一下这里, www.zedge.net/txts/4519/ 这个页面有这么多的文字信息,我想让我的脚本打开并下载每一条信息, 但是我有点问题 这是我打开页面的简单脚本 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.zedge.net/txts/4519"); $contents = curl_exec ($ch); curl_setopt($ch, CURLOPT_RETURNTRAN

首先看一下这里,

www.zedge.net/txts/4519/
这个页面有这么多的文字信息,我想让我的脚本打开并下载每一条信息, 但是我有点问题

这是我打开页面的简单脚本

<?php
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://www.zedge.net/txts/4519");
 $contents = curl_exec ($ch);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_close ($ch);
?>

在页面中查找文本消息的所有链接,并将每个链接保存到一个文本文件中(每行一个),然后运行另一个curl会话,打开文本文件逐个读取每个链接,打开它从特定DIV复制内容,然后将其保存到新文件中。

算法非常简单:

  • 使用curl下载
    www.zedge.net/txts/4519
  • 使用(或替代)链接解析它
  • 要么将它们全部存储到文本文件/数据库中,要么使用“subrequest”动态处理它们

有关详细信息,请参阅文档和示例,请注意,实现了
可遍历的
,因此您可以使用
foreach

小贴士:

  • 使用curl opt
    COOKIE\u JAR\u文件
  • 使用
    sleep(…)
    不淹没服务器
  • 设置php时间和内存限制

算法非常简单:

  • 使用curl下载
    www.zedge.net/txts/4519
  • 使用(或替代)链接解析它
  • 要么将它们全部存储到文本文件/数据库中,要么使用“subrequest”动态处理它们

有关详细信息,请参阅文档和示例,请注意,实现了
可遍历的
,因此您可以使用
foreach

小贴士:

  • 使用curl opt
    COOKIE\u JAR\u文件
  • 使用
    sleep(…)
    不淹没服务器
  • 设置php时间和内存限制

我使用DOM作为代码部分。我调用了我的愿望页面,并使用
getElementsByTagName('td')
这里我想从设备页面了解继电器的状态。每次我想要更新继电器的状态。为此,我使用了下面的代码

$keywords = array();
$domain = array('http://USERNAME:PASSWORD@URL/index.htm');
$doc = new DOMDocument;
$doc->preserveWhiteSpace = FALSE;
foreach ($domain as $key => $value) {
    @$doc->loadHTMLFile($value);
    //$anchor_tags = $doc->getElementsByTagName('table');
    //$anchor_tags = $doc->getElementsByTagName('tr');
    $anchor_tags = $doc->getElementsByTagName('td');
    foreach ($anchor_tags as $tag) {
        $keywords[] = strtolower($tag->nodeValue);
        //echo $keywords[0];
    }
}
然后我在
$keywords[]
数组中获得所需的中继名称和状态。 在这里,我分享输出


如果要阅读主页中的所有消息。然后,首先您必须收集单独消息的所有链接。然后,您可以将其用于进一步的相同过程。

我将DOM用于代码部分。我调用了我的愿望页面,并使用
getElementsByTagName('td')
这里我想从设备页面了解继电器的状态。每次我想要更新继电器的状态。为此,我使用了下面的代码

$keywords = array();
$domain = array('http://USERNAME:PASSWORD@URL/index.htm');
$doc = new DOMDocument;
$doc->preserveWhiteSpace = FALSE;
foreach ($domain as $key => $value) {
    @$doc->loadHTMLFile($value);
    //$anchor_tags = $doc->getElementsByTagName('table');
    //$anchor_tags = $doc->getElementsByTagName('tr');
    $anchor_tags = $doc->getElementsByTagName('td');
    foreach ($anchor_tags as $tag) {
        $keywords[] = strtolower($tag->nodeValue);
        //echo $keywords[0];
    }
}
然后我在
$keywords[]
数组中获得所需的中继名称和状态。 在这里,我分享输出


如果要阅读主页中的所有消息。然后,首先您必须收集单独消息的所有链接。然后,您可以将其用于进一步的相同过程。

我对DOM了解不多,当我打开您为DOM提供的链接时,有很多东西需要阅读:哦,顺便说一句,我尝试了您的代码,它显示了一个错误警告:DOMDocument::loadHTML()[DOMDocument.loadHTML]:在E:\Installations\xampp\htdocs\wp\test1.php联机中作为输入提供的空字符串7@Xufyan检查
$contents
var\u dump($contents)
)的内容我没听清楚,搜索了很多:/n请您解释一下,首先您必须有正确的
$contents
,因此您必须检查
$contents
是否为空。。。(curl请求成功)还有php.net/manual/en/function.curl-getinfo.php这个带有CURLINFO_HTTP_的代码应该返回200我对DOM不太了解,当我打开你为DOM提供的链接时,有很多东西要读:哦,顺便说一句,我尝试了你的代码,它显示了一个错误警告:DOMDocument::loadHTML()[DOMDocument.loadHTML]:在E:\Installations\xampp\htdocs\wp\test1.php联机中作为输入提供的空字符串7@Xufyan检查
$contents
var\u dump($contents)
)的内容我没听清楚,搜索了很多:/n请您解释一下,首先您必须有正确的
$contents
,因此您必须检查
$contents
是否为空。。。(curl请求成功)还有php.net/manual/en/function.curl-getinfo.php这个带有CURLINFO_HTTP_的代码应该返回200
$keywords = array();
$domain = array('http://USERNAME:PASSWORD@URL/index.htm');
$doc = new DOMDocument;
$doc->preserveWhiteSpace = FALSE;
foreach ($domain as $key => $value) {
    @$doc->loadHTMLFile($value);
    //$anchor_tags = $doc->getElementsByTagName('table');
    //$anchor_tags = $doc->getElementsByTagName('tr');
    $anchor_tags = $doc->getElementsByTagName('td');
    foreach ($anchor_tags as $tag) {
        $keywords[] = strtolower($tag->nodeValue);
        //echo $keywords[0];
    }
}