我有下面的代码不工作。意味着ITMS服务不会通过获取请求调用URL。如何在PHP中的ITMS URL中发送获取请求?
header('Location: itms-services://?action=download-manifest&url=http://www.mysite.com/plistReader.php?id=123');
如果我删除id=123
其开始工作。但我需要发送这个以保持身份证动态。在Session中我也无法通过。请帮忙。
我有下面的代码不工作。意味着ITMS服务不会通过获取请求调用URL。如何在PHP中的ITMS URL中发送获取请求?
header('Location: itms-services://?action=download-manifest&url=http://www.mysite.com/plistReader.php?id=123');
如果我删除id=123
其开始工作。但我需要发送这个以保持身份证动态。在Session中我也无法通过。请帮忙。
您需要对该问号进行网址编码,因为它是一个保留字符%3F
。正如@wroniasty所指出的那样,您还需要将=
编码为%3D
。
header('Location: itms-services://?action=download-manifest&url=http://www.mysite.com/plistReader.php%3Fid%3D123');
参见:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
切勿用手逃避网址字符。让PHP 5的函数 - urlencode(),http_build_query() - 为您做好工作。这避免了某些GET参数名称/值对可能包含需要传输的敏感字符的问题。
<?php
$base_url = "http://www.mysite.com/plistReader.php";
$data = Array("id" => 123, "dangerous" => ":?&= are some sensitive chars");
$itms_url = "itms-services://?action=download-manifest&url=" . urlencode($base_url . "?" . http_build_query($data));
header('Location: ' . $itms_url);
?>
尝试逃脱,和 '=' 分别%3F和%3D '?':URL = HTTP://www.mysite.com/plistReader.php%3Fid%3D123 – wroniasty 2012-04-26 15:57:23
谢谢... ..它的工作..... – Varun 2012-04-26 16:18:23