<?php
$url = $_GET['url'];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
$data = curl_exec($ch);
curl_close($ch);
echo("<h1>".$url."</h1>");
echo (substr($data,0,-1));
?>
但我必须通过这个链接“http://isohunt.com/js/json.php?ihq=ubuntu&sort=age”,因为我有一个&amp;在那里我的PHP脚本无法正确评估链接。我如何解决这个问题?
答案 0 :(得分:3)
在通过url GET参数将目标URL传递给脚本之前,请使用urlencode()
对其进行编码(或根据目标URL进入情况的等效位置对其进行编码)。
当您检索$_GET['url']
时,编码将自动撤消,从而为您提供原始(所需)网址。 (感谢Quentin在这里纠正我。)
希望这有帮助。
答案 1 :(得分:1)
使用urlencode
生成链接,例如
echo '<a href="http://example.com/my-script.php?url="';
echo url_encode( $url );
echo '">click here</a>';
应该输出
<a href="http://example.com/my-script.php?url=http%3A%2F%2Fisohunt.com%2Fjs%2Fjson.php%3Fihq%3Dubuntu%26sort%3Dage">click here</a>
答案 2 :(得分:1)
假设您的数据中的字符在URI中具有特殊含义(例如&
),则表示您无法对其进行编码(对于该特定字符为%26
)。
由于您要标记此 jquery-ajax :停止手动构建URI。让jQuery做到这一点:
$.ajax({
url: "myProxy.php",
data: {
url: "http://isohunt.com/js/json.php?ihq=ubuntu&sort=age"
},
success: function(){
// yada yada
}
});
答案 3 :(得分:0)
在将url传递给url参数之前尝试进行URL编码。如果您想快速,请使用下面提到的链接。