【问题标题】:PHP / cURL - Redirect and remain where the function wasPHP / cURL - 重定向并保持函数所在的位置
【发布时间】:2016-03-19 19:45:46
【问题描述】:

我使用这个代码/脚本:

<?php

//Upload a blank cookie.txt to the same directory as this file with a CHMOD/Permission to 777
function login($url,$data){
    $fp = fopen("cookie.txt", "w");
    fclose($fp);
    $login = curl_init();
    curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($login, CURLOPT_TIMEOUT, 40000);
    curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($login, CURLOPT_URL, $url);
    curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($login, CURLOPT_POST, TRUE);
    curl_setopt($login, CURLOPT_POSTFIELDS, $data);
    ob_start();
    return curl_exec ($login);
    ob_end_clean();
    curl_close ($login);
    unset($login);    
}                  

function grab_page($site){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect:"));
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_URL, $site);
    ob_start();
    return curl_exec ($ch);
    ob_end_clean();
    curl_close ($ch);
}

function post_data($site,$data,$data){
    $datapost = curl_init();
        $headers = array("Expect:");
     curl_setopt($datapost, CURLOPT_URL, $site);
         curl_setopt($datapost, CURLOPT_TIMEOUT, 40000);
         curl_setopt($datapost, CURLOPT_HEADER, FALSE);
         curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
     curl_setopt($datapost, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
     curl_setopt($datapost, CURLOPT_POST, TRUE);
     curl_setopt($datapost, CURLOPT_POSTFIELDS, $data);
         curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
    ob_start();
    return curl_exec ($datapost);
    ob_end_clean();
    curl_close ($datapost);
    unset($datapost);   

}

?>

这个脚本在我的另一个网站上的vps中运行并自动完成一些功能。我希望在执行该功能后重定向他留在我的 vps 上的原始网站。

示例:我的代码/脚本像 google.com/page1 一样工作,自动执行功能到 page4,当我使用重定向时,他再次开始到 google.com/page1,我想在重定向时保留 page4。

原网站有自动刷新功能吗?

抱歉英语不好。

【问题讨论】:

  • 你总是大喊大叫吗?
  • 什么?我听不懂你在说什么?

标签: php redirect curl


【解决方案1】:

你可以使用 curl_getinfo()。

http://php.net/manual/en/function.curl-getinfo.php

echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

示例:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect:"));
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_URL, $site);
    ob_start();
    curl_exec ($ch);
$last_redirected_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    ob_end_clean();
    curl_close ($ch);

echo $last_redirected_url;

【讨论】:

  • 请举例?回声 curl_getinfo($ch, google.com);只是这个?我不需要别的吗?
  • 感谢脚本,但我是 php curl 的新手。如果我有完整的例子,我知道如何使用。请问?我的意思是我需要在这个脚本中添加我的网站?或者我需要在哪里更换?
  • 你的代码只是函数而不是主脚本,所以我无法帮助你。
猜你喜欢
  • 2019-06-21
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 2010-12-13
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
相关资源
最近更新 更多