Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 - Fatal编程技术网

PHP-管理curl输出

PHP-管理curl输出,php,curl,Php,Curl,基于我的最后一个问题,我向网站发送了请求,并显示了输出。但是,请显示完整的网站。我只想在curl输出中获得一些数据,如链接 $url = 'http://site1.com/index.php'; $data = ["send" => "Test"]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($cur

基于我的最后一个问题,我向网站发送了请求,并显示了输出。但是,请显示完整的网站。我只想在curl输出中获得一些数据,如链接

$url = 'http://site1.com/index.php';
$data = ["send" => "Test"];
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);
var_dump($response);

这段代码显示我想要什么,但输出包含完整的网站。我只想获取一些数据并显示输入输出。

您可以使用
preg\u match\u all
和精心构建的模式。此代码的修改版本应提供您检索的HTML中所有图像URL的列表:

$url='1!'http://site1.com/index.php';
$data=[“发送”=>“测试”];
$ch=curl\u init($url);
卷曲设置($ch,卷曲设置桩,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$response=curl\u exec($ch);
卷曲关闭($ch);
$matches=NULL;
$pattern='/]*>/';
$img\u count=preg\u match\u all($pattern,$response,$matches);
var_dump($matches[1]);
如果您想取回所有链接,可以将
$pattern
更改为:

$pattern='/]+href=\”([^“]+)“[^>]*>/”;
我在一个html文件上测试了此代码,该文件如下所示:


输出是这样的:

array(1) {
  [0]=>
  string(9) "WANT-THIS"
}
编辑2: 为了回答OP的其他问题,我还尝试了这个html文件上的脚本:


编解码器
它产生了这样的结果:

array(1) {
  [0]=>
  string(5) "IMAGE"
}


如果这不能解决您的问题,您需要提供额外的详细信息——您正在获取的示例url、您想要搜索的HTML,或者关于如何知道您想要获取的HTML中的哪个图像的额外详细信息——它是否有一些特殊的id?它是否总是第一个图像?第二个图像?是否有任何特征通过它我们知道要抓取哪个图像?

您得到的响应是什么?您所说的“我只是想获取一些数据”是什么意思"? 你在哪里用任何东西过滤输出?@vivek_23 response让我看看有数据的网站。我只需要数据。未在屏幕上完全显示网站如果该网站是您的,您可以创建单独的端点,该端点将返回您需要的内容(例如:)如果该网站不是您的,您将不得不使用web scraping脚本来过滤响应。下面的链接可能有助于您编写一个scraper@NicoHaase,我不知道如何过滤。我想要的数据在某个html类中。我不建议在HTML响应上使用正则表达式匹配。为什么不呢?它会给你一个页面中的图片列表。@vivek_23不确定这篇长而道貌岸然的文章首先值得这么多人投票。其次,我不是在写“解析器”——这里的目标非常有限。你不应该使用正则表达式,因为不管目标有多大或多小,这都是一种不好的做法。另外,在正则表达式中,您希望src使用双引号,也可以使用单引号。另外,如果我没有弄错的话,它也可能与
data src
属性冲突。@vivek_23所以你宁愿没有解决方案,也不愿意选择一个可能被调整以工作的解决方案?