在以下代码中:
<script type="text/javascript">
function updateView(set) {
$.post("<?php echo base_url("/show_cards/load_page")."/"; ?>"+set, function( data ) {
$( "#content" ).html( data );
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
'set'是一个字符串变量,可以在其中包含空格.我注意到它有空格时它无法正常工作.我怎样才能解决这个问题?
编辑:为清楚起见,我想保持空间完整.
我使用 encodeURI() 对 php 请求 url 进行编码,它在 Firefox 和 Chrome 中工作得很好,但在 IE/Edge 中却没有。
实际网址是:
http://localhost/get.php?id=e_e2&title=e2&desc=just a note&stime=6/12/2015, 1:00:00 AM&etime=15/12/2015, 1:00:00 PM
Firefox 返回的是(有效):
http://localhost/get.php?id=e_HO%20Event%201&title=HO%20Event%201&desc=This%20is%20just%20a%20test%20event%20of%20this%20handover%20only&stime=6/12/2015,%201:00:00%20AM&etime=10/12/2015,%201:00:00%20PM
IE 返回什么(破坏 php 代码):
http://localhost/get.php?id=e_HO%20Event%201&title=HO%20Event%201&desc=This%20is%20just%20a%20test%20event%20of%20this%20handover%20only&stime=%E2%80%8E6%E2%80%8E/%E2%80%8E12%E2%80%8E/%E2%80%8E2015%E2%80%8E%20%E2%80%8E1%E2%80%8E:%E2%80%8E00%E2%80%8E:%E2%80%8E00%E2%80%8E%20%E2%80%8EAM&etime=%E2%80%8E10%E2%80%8E/%E2%80%8E12%E2%80%8E/%E2%80%8E2015%E2%80%8E%20%E2%80%8E1%E2%80%8E:%E2%80%8E00%E2%80%8E:%E2%80%8E00%E2%80%8E%20%E2%80%8EPM
我试图解码 IE 返回的内容,但它给我带来了很多问题!,那么有没有 encodeURI() 的替代方法?,即使我不对 url 进行编码,FF 似乎也可以工作,如果我复制 FF 编码,IE 可以工作网址吧!
更新:示例代码 链接
我认为它与 toLocaleString() 有关
最终更新:
由于很少有人回答,链接中的一些磨损标记“仅在 IE 中出现!” 我必须过滤并更改我的 php 脚本日期格式以删除逗号
function FixLocaleDateString(localeDate) {
var newStr = "";
for (var i = 0; i < localeDate.length; i++) {
var code = localeDate.charCodeAt(i);
if (code != 44 && code != …Run Code Online (Sandbox Code Playgroud) 我的图片主机有一个Google Chrome扩展程序,它会将URL发送到我的网站.该URL 通过Javascript的方法进行编码escape.
由以下内容编码的URL escape:
http%253A//4.bp.blogspot.com/-xa4Krfq2V6g/UF2K5XYv3kI/AAAAAAAAAJg/8wrqZQP9ru8/s1600/LuffyTimeSkip.png
Run Code Online (Sandbox Code Playgroud)
我需要通过PHP以某种方式将URL恢复正常,所以我可以检查它,filter_var($the_url, FILTER_VALIDATE_URL)如果URL如上所述,它显然会失败.
这就是Javascript的样子:
function upload(img) {
var baseurl="http://imgit.org/remote?sent-urls=1&remote-urls=" + escape(img.srcUrl);
uploadImage(baseurl);
}
function uploadImage(imgurl) {
chrome.tabs.create({
url: imgurl,
selected: true
});
}
var title = "Upload this image to IMGit";
var id = chrome.contextMenus.create({"title": title, "contexts": ['image'], "onclick": upload});
Run Code Online (Sandbox Code Playgroud)
这就是我在PHP中所做的:
if (!filter_var($file, FILTER_VALIDATE_URL) || !filter_var(urldecode($file), FILTER_VALIDATE_URL))
{
throw_error('The entered URLs do not have a valid URL format.', 'index.php#remote'); break;
}
Run Code Online (Sandbox Code Playgroud)
坦率地说,urldecode()不为我做这份工作.正如您所注意到的,我正在接收URL $_GET.
处理这种情况的最佳方法是什么?
实际问题:如何在PHP中 …
但我无法证明/理解我是否应该使用escape来编码字符串或者我应该使用encodeurlcomponent.我试过阅读一些在线博客但还没有理解.
在什么情况下应该使用哪个指针.
我正在通过我的AJAX调用发送相当多的值,如下所示:
var postData = "aid="+aid+"&lid="+lid+"&token="+token+"&count="+count+"&license="+license;
postData = postData + "&category="+category+"&event_name="+event_name+"&set_menu="+set_menu;
postData = postData + "&set_id="+set_id+"&location="+location+"&delay="+delay;
Run Code Online (Sandbox Code Playgroud)
然后像这样发送呼叫:
$.ajax({
type : 'GET',
url : 'ajax/createFolderID.asp',
dataType : 'html',
data : postData,
success : function() { do something },
complete : function() { do something },
error : function() { do something }
});
Run Code Online (Sandbox Code Playgroud)
问题是,其中一个查询字符串值"event_name"来自用户输入.如果用户输入&符号,则postData字符串会断开,并且不会在该符号后发送任何内容.
示例案例:&event_name = D&G服装发布会&set_menu =现有...
我明白出了什么问题,但不太确定最好的解决方案是什么.我是否将这些字符转换为其他字符,或者有没有办法逃避它们?此外,是否还有其他任何会对脚本造成伤害的字符,如加号(+)或减号( - )符号或撇号(')?
我试图将参数传递给python cgi脚本,此参数包含加号运算符.
/cgi-bin/test.py?input=print%20"%20"%20"%20%20-+-\"
Run Code Online (Sandbox Code Playgroud)
python cgi脚本很简单:
#!/usr/bin/python -w
import cgi
fs = cgi.FieldStorage()
print "Content-type: text/plain\n"
strE=fs.getvalue("input")
print strE
Run Code Online (Sandbox Code Playgroud)
我的输出是:
print " " " - -\"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么'+'加运算符被空格替换,我怎么可以通过'+'加运算符?
编辑
@Tom Anderson回答了我的问题,我想再提一下我的问题.
我有一个java脚本函数调用获取带参数的url:
<script type="text/javascript">
function PostContentEditable(editableId,targetOutput)
{
var texthtml = document.getElementById(editableId).innerHTML
var tmp = document.createElement("DIV");
tmp.innerHTML = texthtml ;
var str= tmp.textContent||tmp.innerText;
var xmlhttp;
if (str.length == 0){
document.getElementById(targetOutput).innerHTML = "";
return;
}
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(targetOutput).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","../cgi-bin/exercise.py?input="+str,true);
xmlhttp.send();
} …Run Code Online (Sandbox Code Playgroud) 例如something:8000/something.jsp?param1=update¶m2=1000¶m3=SearchString%¶m4=3,在传递我的网址时,我收到以下错误:
Bad Request
Your browser sent a request that this server could not understand.
Run Code Online (Sandbox Code Playgroud)
我知道SearchString%我需要传递哪个作为参数,有问题.那么如何在URL中传递包含'%'的参数?
我正在通过AJAX将我的字符串传递给PHP $.Ajax.
我正在尝试传递这个字符串:
action=abc¶meter=C&W
Run Code Online (Sandbox Code Playgroud)
AJAX C&W在此基础上拆分&,因此请求采用以下格式:
$action = "abc";
$parameter = "C";
Run Code Online (Sandbox Code Playgroud)
如何将其传递给它C&W,而不将其拆分为不同的参数?
我在Javascript/Node.js上,当我使用此查询参数发出HTTP请求时:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,因为它之后的所有商品:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-
Run Code Online (Sandbox Code Playgroud)
我想知道我怎么能编码这个字符串所以它不会砍掉它?
我有一个脚本调用另一个PHP页面并使用PHP get传递值.
一个变量q与URL一起发送,其中str是一个变量.
xmlhttp.open("GET","getdata.php?q="+str,true);
Run Code Online (Sandbox Code Playgroud)
我想在URL字符串中发送一些多变量.
如何发送多个变量.
沿着:
xmlhttp.open("GET","getdata.php?q="+str+"y="+str2+"z="+str3,true);
Run Code Online (Sandbox Code Playgroud)
那里的URL就像那样
page.php?q=Peter&y=John&z=Smith
Run Code Online (Sandbox Code Playgroud)