Php 使用cURL登录到远程网页后,如何访问另一个网页并将其作为字符串返回?

Php 使用cURL登录到远程网页后,如何访问另一个网页并将其作为字符串返回?,php,curl,Php,Curl,好吧,我对卷发很陌生。我已经设法使用cURL登录到一个网页并发送POST数据,但是一旦我登录,我希望它在同一会话下加载不同的网页,并将数据提取为字符串,这样我就可以检查该网页是否包含特定的字符串 我该怎么做呢 例如: 它登录到http://example.com/login.php 但是登录后,我需要它来访问http://example.com/site.php?page=news并以字符串形式返回该页面的内容。这通常取决于远程站点处理状态管理的方式 在大多数情况下,这将通过cookie实现,因

好吧,我对卷发很陌生。我已经设法使用cURL登录到一个网页并发送POST数据,但是一旦我登录,我希望它在同一
会话下加载不同的网页,并将数据提取为字符串,这样我就可以检查该网页是否包含特定的字符串

我该怎么做呢

例如:

它登录到
http://example.com/login.php


但是登录后,我需要它来访问
http://example.com/site.php?page=news
并以字符串形式返回该页面的内容。

这通常取决于远程站点处理状态管理的方式

在大多数情况下,这将通过cookie实现,因此您需要指示curl跟踪cookies

比如:

curl_setopt($curl, CURLOPT_COOKIEJAR, '/tmp/cookies');  //where to write cookies received from server
curl_setopt($curl, CURLOPT_COOKIEFILE, '/tmp/cookies'); //where to read cookies to send in requests.
你应该从那里开始

编辑 明目张胆的复制/粘贴示例(-20秒左右通过谷歌搜索“php curl登录”即可找到)。这似乎是正确的:

<?php 
$url ="http://login.yahoo.com/config/login?.src=ym&.intl=us&.partner=&.done=http%3A%2F%2Fmail.yahoo.com%2F"; 
$ch = curl_init();      
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/cookie.txt'); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, "login=emailid&passwd=password&&submit=Sign In"); 
ob_start();      
curl_exec ($ch); 
ob_end_clean();  
curl_close ($ch); 
unset($ch); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "/temp/cookie.txt"); 
curl_setopt($ch, CURLOPT_URL,"http://us.f515.mail.yahoo.com/ym/login?"); 
$result = curl_exec ($ch); 

curl_close ($ch); 
echo $result; 

嗯,事先我需要知道如何让cURL在结束脚本之前访问另一个网页您只需发出另一个cURL请求,但这次,不要发布,只需获取。请确保为第二个请求设置了CURLOPT_COOKIEFILE,以便第二个请求在您的第一个(POST)请求期间发送cookies集。抱歉,我今天太忙,无法为您制作一个工作示例。但是,如果您已经发出一个请求(登录),只需确保您正在为登录设置cookiejar,然后发出第二个请求,将cookiefile指向同一个文件,以获取您想要的页面。然后检查响应主体中要测试的字符串。