Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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从网页获取内容_Php_Get - Fatal编程技术网

使用PHP从网页获取内容

使用PHP从网页获取内容,php,get,Php,Get,我正在做一个小项目,根据页面的HTML标记从几个网页获取信息,我根本不知道从哪里开始 其基本思想是从s中获取标题,从s标签中获取内容以及所需的其他重要信息 我必须从每个来源设置每个案例,以使其按照需要的方式工作。我相信正确的方法是在PHP中使用$\u GET方法。该项目的目标是建立一个信息数据库 获取我需要的信息的最佳方法是什么?您可以通过以下方式获取页面的HTML源代码: <?php $html= file_get_contents('http://www.example.com/');

我正在做一个小项目,根据页面的HTML标记从几个网页获取信息,我根本不知道从哪里开始

其基本思想是从s中获取标题,从s标签中获取内容以及所需的其他重要信息

我必须从每个来源设置每个案例,以使其按照需要的方式工作。我相信正确的方法是在PHP中使用$\u GET方法。该项目的目标是建立一个信息数据库


获取我需要的信息的最佳方法是什么?

您可以通过以下方式获取页面的HTML源代码:

<?php
$html= file_get_contents('http://www.example.com/');
echo $html;
?>
然后,一旦您确定了页面的结构,您将获得带有substr和strpos的请求标记。正如您在文档中所看到的,$\u GET只是一个数组,它使用web服务器在当前查询期间收到的GET参数初始化。因此,这不是你想用在这类事情上的东西

您应该研究的是,它允许您编写甚至相当复杂的查询,发送到目标服务器并检索响应。例如,对于POST请求,您可以执行以下操作:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1&postvar2=value2&postvar3=value3");

// in real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS, 
//          http_build_query(array('postvar1' => 'value1')));

// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);
当然,如果您不必执行任何复杂的查询,只需执行简单的GET请求,那么可以使用PHP函数


收到网页内容后,必须对其进行解析。我认为最好的方法是使用。如何使用它们应该是另一个问题,但是你可以不费吹灰之力就找到大量的示例。

你要找的是名为“刮削”的,实际上有大量的解决方案、库、包装和教程。只是谷歌的php刮刀$_GET不是一个方法,它基本上只是一个包含查询值的数组——因此它实际上与您的问题无关。此外,您还应该查看php DOM解析器,以便从文档/源代码中正确提取所需的html元素。使用substr和STRPO解析html将导致Kittins陷入地狱。
  <?php
 $remote = file_get_contents('http://www.remote_website.html');
 $doc = new DomDocument();
 $file = @$doc->loadHTML($remote);  
 $cells = @$doc->getElementsByTagName('h1');

 foreach($cells AS $cell)
 {


    $titles[] = $cell->nodeValue ;

}

 $cells = @$doc->getElementsByTagName('p');

foreach($cells AS $cell)
 {

    $content[] = $cell->nodeValue ;

}

 ?>