$_GET in PHP and &
$_GET in PHP and &
我有一个问题。我做了一个PHP代理,使用以下代码从外部服务器获取json数据:
<?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",因为我有一个 &在那里,我的 php 脚本无法正确评估链接。我如何解决问题?
在通过 url GET 参数将目标 URL 传递给脚本之前,请使用 urlencode()
(或等效项,具体取决于目标 URL 进入情况的位置(对其进行编码。
当您检索$_GET['url']
时,编码将自动反转,为您提供原始(所需的(URL。(感谢昆汀在这里纠正我(。
希望这有帮助。
使用 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>
大概当你的数据中有在 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
}
});
在将 url 传递给 url 参数之前尝试进行 URL 编码。如果您想快速,请使用下面提到的链接。
http://meyerweb.com/eric/tools/dencoder/
相关文章:
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- Angular js-返回一个包含类似
- 一点javascript元编程&可链接的设置器
- 通过JSON&比较时间
- Jquery模板,如果xx&&如果yy
- Selenium WebDriver and JavaScript change
- jQuery工具验证器自定义效果-添加&消除影响
- Twitter引导程序Typeahead-Id&标签
- AngularJS&JSON-从Previous&下一个对象
- 什么是&&在没有if的行中的变量之间
- 关于引入外部javascript文件的问题&css通过https
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 使用ajax的服务器端分页&jQuery
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 如何使用dropzone&vueJs
- 如何准确执行加载脚本&退出弹出窗口
- 如何添加CSS&JavaScript进入Windows窗体应用程序C#.net
- Solr查询以按日期月份获取数据&年
- CSS选择器与And操作组合'&&'