如何运行:url from 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

当我从地址栏运行url时,如何以与在浏览器中相同的方式(完全相同的行为)从php脚本运行url。我的意思是使用相同的标题数据、cookies和浏览器发送的附加数据。如何在php中添加此数据

我登录时需要这个原因,这两个案例的答案不一样:

  • 在浏览器中,我仍然登录,这是正确的
  • 从php运行我已注销-不正确
  • 我试过nad,但它不能正常工作-反应仍然不同

    我在打电话
    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对象”运行