如何运行:url from php=从浏览器运行
当我从地址栏运行url时,如何以与在浏览器中相同的方式(完全相同的行为)从php脚本运行url。我的意思是使用相同的标题数据、cookies和浏览器发送的附加数据。如何在php中添加此数据 我登录时需要这个原因,这两个案例的答案不一样:如何运行:url from php=从浏览器运行,php,url,browser,curl,file-get-contents,Php,Url,Browser,Curl,File Get Contents,当我从地址栏运行url时,如何以与在浏览器中相同的方式(完全相同的行为)从php脚本运行url。我的意思是使用相同的标题数据、cookies和浏览器发送的附加数据。如何在php中添加此数据 我登录时需要这个原因,这两个案例的答案不一样: 在浏览器中,我仍然登录,这是正确的 从php运行我已注销-不正确 我试过nad,但它不能正常工作-反应仍然不同 我在打电话http://127.0.0.1/check.html下面是功能检查: public function check(){ echo
http://127.0.0.1/check.html
下面是功能检查:
public function check(){
echo 'begin';
// $total_rows = file_get_contents('https://127.0.0.1:8443/example.html?shopId=121');
$total_rows = $this->getUrl('https://127.0.0.1:8443/example.html', '121');
print_r($total_rows);
echo 'end';
}
function getUrl($url, $shopId ='') {
$post = 'shopId=' . $shopId;
$ch = curl_init();
$cookie_string="";
foreach( $_COOKIE as $key => $value ) {
$cookie_string .= "$key=$value;";
};
$cookie_string .= "JSESSIONIDSSO=66025D1CC9EF39ED7F5DB024B6026C61";
// echo $cookie_string;;
$ch = curl_init();
curl_setopt($ch,CURLOPT_COOKIE, $cookie_string);
// curl_setopt($ch, CURLOPT_PORT, 8443);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/../../files/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Secure Content-Type: text/html; charset=UTF-8"));
// curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: 127.0.0.1:8443'));
$ret = curl_exec($ch);
curl_error ($ch );
curl_close($ch);
return $ret;
}
试试看:
或者:
或者:
希望获得帮助您可以使用PHP脚本执行cron作业以执行其他脚本。在使用上述任何方法时,您是否传递了正确的头和会话/cookie值以及任何其他参数。要获得正确的解决方案,请发布您可能尝试过的任何代码。仅仅说“这不起作用”并不能保证得到一个热烈的回应
您尝试了什么
?不知道如何将“正确的标题和会话/cookie值”从浏览器添加到phpOkay,您在上面的示例中使用了CURLOPT_标题
,并将其设置为0,这类似于不发送标题。此外,cookie还有一个curl变量。请查看php手册和示例,它们会让您了解如何使用php。这可能对你有帮助。谢谢回答!但是即使使用Cookie,仍然不起作用:我在代码中添加了:CURLOPT_Cookie如果要复制从浏览器发出的请求,请首先捕获从浏览器实际发送的请求。然后可以设置适当的标题。如果这是您自己的应用程序,并且您正在向其发出请求,那么您应该更容易了解请求的不同之处,或者您得到不同响应的原因。最后,您谈到登录和注销,但代码中没有任何指示登录或注销的内容。仍然保持注销状态,即使将url作为“snoopy对象”运行