Php 获取一个棘手的短URL重定向

Php 获取一个棘手的短URL重定向,php,redirect,curl,Php,Redirect,Curl,我经常使用php get_headers()或cURL从短URL解析长URL。我在使用Oktopost的短URL时遇到问题,例如以下示例: 标题表示没有从此URL重定向,只返回: 但当我将此链接粘贴到浏览器中时,它会将我重定向到另一个目标页面。这是否表明Oktopost服务器上存在某种类型的重定向,而这种重定向通过典型的头位置是不“可跟踪”的?对这里可能发生的事情有点困惑 其他信息 根据下面的建议,我正在尝试返回一个cURL响应,以便解析元刷新并获得所需的URL。问题是,我所有的卷曲尝试都陷入了

我经常使用php get_headers()或cURL从短URL解析长URL。我在使用Oktopost的短URL时遇到问题,例如以下示例:

标题表示没有从此URL重定向,只返回:

但当我将此链接粘贴到浏览器中时,它会将我重定向到另一个目标页面。这是否表明Oktopost服务器上存在某种类型的重定向,而这种重定向通过典型的头位置是不“可跟踪”的?对这里可能发生的事情有点困惑

其他信息

根据下面的建议,我正在尝试返回一个cURL响应,以便解析元刷新并获得所需的URL。问题是,我所有的卷曲尝试都陷入了一个无限循环。我尝试过很多种选择组合,但都没有成功

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://okt.to/4AOy96');
//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6'); 
//curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$html = curl_exec($ch);
curl_close($ch);
echo $html;

只是似乎无法终止循环并返回html。

查看响应的源代码:

<script type="text/javascript">
    var form, hash, referer;

    form = document.createElement("form");
    hash = document.createElement("input");
    referer = document.createElement("input");

    referer.setAttribute('type', 'hidden');
    referer.setAttribute('name', 'referer');
    referer.setAttribute('value', '');

    hash.setAttribute('type', 'hidden');
    hash.setAttribute('name', 'hash');
    hash.setAttribute('value', '4AOy96');

    form.setAttribute('method', 'post');
    form.setAttribute('action', '');

    document.getElementsByTagName("body")[0].appendChild(form);

    form.appendChild(hash);
    form.appendChild(referer);


    form.submit();
</script>

var形式、散列、referer;
表单=document.createElement(“表单”);
hash=document.createElement(“输入”);
referer=document.createElement(“输入”);
setAttribute('type','hidden');
setAttribute('name','referer');
referer.setAttribute('value','');
setAttribute('type','hidden');
setAttribute('name','hash');
setAttribute('value','4AOy96');
form.setAttribute('method','post');
form.setAttribute('action','');
document.getElementsByTagName(“正文”)[0].appendChild(表单);
表单.appendChild(散列);
表格.附属儿童(参照者);
表单提交();

JS在收到200个响应后正在执行POST请求。

该站点执行一些javascript来刷新页面。 您可以做的是向okt.to发出请求,并提取保存所需url的元标记

<meta http-equiv="refresh" content="2;url=http://bit.ly/1EnnAau" />


请参见上文我的其他信息。我知道你的建议会起作用,但我陷入了一个inite cURL循环中,试图返回html响应。我不确定你对无限循环的意思。当我运行你的代码片段时,它运行得非常好?我发现这是我的愚蠢错误。正在回显响应,导致浏览器重定向。我现在用DOMDocument()解析响应,一切正常。谢谢你的帮助。非常感谢!
<meta http-equiv="refresh" content="2;url=http://bit.ly/1EnnAau" />