我有以下HTML:
<input type="checkbox" id="options_1" value="options_1" name="options[]">
<input type="checkbox" id="options_2" value="options_2" name="options[]">
<input type="checkbox" id="options_3" value="options_3" name="options[]">
Run Code Online (Sandbox Code Playgroud)
我检查前两个选项并通过jQuery中的ajax将其发送到服务器:
$.ajax({
type: "POST",
url: "myfile.php",
data: {
'options':$('input[name="options[]"]').serialize()
},
dataType: 'json',
beforeSend: function(){
//do some stuff
},
success: function(msg){
//do some stuff
}
});
Run Code Online (Sandbox Code Playgroud)
Firebug向我显示已发布的数据:
期权 期权%5B%5D = options_1&options%5B%5D = options_2
到目前为止,非常好.
在myfile.php中我得到了如下的POST变量:
$options = $_POST['options'];
Run Code Online (Sandbox Code Playgroud)
现在,当我回显$ options时,我得到了这个:
"options[]=options_1&options;[]=options_2"
Run Code Online (Sandbox Code Playgroud)
第二对括号前面的分号是从哪里来的?这真让我抓狂.
我已经在POST数据上使用了utf8_decode以及urldecode和rawurldecode.没有什么变化.我还逃过了ajax调用中的方括号,如下所示:
data: {
'options':$('input[name="options\\[\\]"]').serialize()
},
Run Code Online (Sandbox Code Playgroud)
这也没有帮助.任何人的想法?
给出以下代码:
$myString = <<<script
.
.
.
script;
Run Code Online (Sandbox Code Playgroud)
感谢这个问题的原始版本的答案,我理解<<<是heredoc语法,被视为双引号而不需要转义引号.
更进一步,这是如何最好地利用?具体来说,这是否应该减轻处理包含代码语法的混合引用字符串的压力?
I,E ..
attribute="name-like string" attribute="property: 'value("value")';"
Run Code Online (Sandbox Code Playgroud)
想到这可能是有用的(如果以我现在猜测的方式实现),特别是在处理更大的复杂性和/或寻找代码注入时.再次,寻找heredoc特别有用或可利用的任何场景.
我正在使用VS 2010 + resharper,我已经厌倦了在代码中重新格式化支架缩进,因为我想要它.例如,如果我有像这样的代码:
operators.Keys
.ToList()
.ForEach(k => filters
.AddRange(CustomHtmlHelpers.GetIdAndValueListByPrefix(queryString, k)
.Select(t => new QueryFilter()
{
Operation = operators[k],
PropertyName = t.Item1,
Value = t.Item2
})))
Run Code Online (Sandbox Code Playgroud)
如果我把;VS(或resharper)'修复'括号缩进放在最后,那么代码就像:
operators.Keys
.ToList()
.ForEach(k => filters
.AddRange(CustomHtmlHelpers.GetIdAndValueListByPrefix(queryString, k)
.Select(t => new QueryFilter()
{
Operation = operators[k],
PropertyName = t.Item1,
Value = t.Item2
})));
Run Code Online (Sandbox Code Playgroud)
如果我使用resharper的代码清理,也会发生同样的情况.我可能会关闭自动代码重新格式化,;但在其他情况下我需要它.我尝试在VS和resharper设置中更改代码格式化选项,但从未得到我想要的缩进.
我如何配置vs或resharper,以便它不会执行多个选项卡格式化?或者也许我可以使用其他插件(与r#一起)专门用于此目的?
编辑:对于任何对这个问题感兴趣的人来说,在r#论坛http://devnet.jetbrains.net/thread/304794中有同样的问题.任何想要从r#看到更好的嵌套代码缩进的人都欢迎在这里投票赞成http ://youtrack.jetbrains.net/issue/RSRP-88220
我遇到了一个无法解释的JavaScript代码.例如:
+[]===0-[]===0~[]===-1~-~[]===-2~-~-~-~-~[]===-5~-~-~-~-~[]+~[]===-6~+~[]===0~+~+~[]===-1~+~+~+~[]===0你能解释一下这些表达的逻辑吗?
双方括号在正则表达式中意味着什么?我对以下示例感到困惑:
/[[^abc]]/
/[^abc]/
Run Code Online (Sandbox Code Playgroud)
我正在使用Rubular进行测试,但我发现双支架和单支架之间没有任何区别.
因此,我对全新的正则表达式世界完全陌生.基本上,我正在使用Gedit API创建一个新的自定义语言规范(从C#派生)用于语法高亮(对于Byond的DM).在DM中的转义字符中,您必须使用[variable]作为转义语法,这很简单.但是,它也可以嵌套,例如[array/list [index]].(它可以无限嵌套.)我已经查看了其他问题,当他们询问嵌套括号时,它们只表示嵌套,而在这种情况下它可能是/或.
我尝试了几次尝试:
\[.*\]产生结果"测试[测试[测试]测试]测试[测试]测试"\[.*?\]产生结果"测试[测试[测试]测试]测试[测试]测试"\[(?:.*)\] 产生结果"测试[测试[测试]测试]测试[测试]测试"\[(?:(?!\[|\]).)*\] 产生结果"测试[测试[测试]测试]测试[测试]测试".这来自/sf/answers/670668491/,但如上所述,只有在内部没有括号时才匹配.显然我不知道我在这里做的更复杂的匹配,但至少我了解更多来自其他来源的基本操作.
我正在尝试编写将接受以下电话号码格式的表达式:
508 736 756
505050505
+48 505 505 505
(+48) 505 505 505
++48 505 505 505
(++48) 505 505 505
(23)692 36 99
23 692 36 99
Run Code Online (Sandbox Code Playgroud)
我写了下面的表达式
^(([+]{0,2}?)?([+]{0,2}?)?([0-9 ]+)?)$
Run Code Online (Sandbox Code Playgroud)
但是,此表达式仅涵盖下面列出的格式:
508 736 756
505050505
+48 505 505 505
++48 505 505 505
23 692 36 99
Run Code Online (Sandbox Code Playgroud)
转义括号字符时出现问题:().这就是我无法涵盖以下格式的原因:
(+48) 505 505 505
(++48) 505 505 505
(23)692 36 99
Run Code Online (Sandbox Code Playgroud)
我尝试用反斜杠逃避它们,但由于某种原因它不起作用.
... [(] [+] {0,2} [)]?...
我使用Visual Studio 2012和插件Visual assist X ver.我有两个问题.
1)当我写等号(=)时,我希望在符号前后自动插入空格(我必须总是按键盘上的空格插入......).可能吗?
例:
int variable=167;
->
int variable = 167;
Run Code Online (Sandbox Code Playgroud)
要么
"=" -> " = "
Run Code Online (Sandbox Code Playgroud)
2)我希望在括号之前和之后以及逗号之前和之后自动插入空格.可能吗?
例:
void fun(int param1,int param2);
->
void fun ( int param1, int param2 );
Run Code Online (Sandbox Code Playgroud) 我正在编写代码,使用字母a,b和c生成随机3个字母的字符串.我收到错误消息"令牌上的语法错误";在我创建随机变量的行之后的"{在此令牌后预期"(Random rand = new Random();).我不知道为什么当我看起来很好的时候我会收到这个错误.
我也收到错误消息:语法错误,插入"}"以完成ClassBody,在程序的最后一个括号后.我几乎是积极的所有我的结束括号匹配,所以我不知道这个错误来自哪里.请帮忙!!
import java.util.*;
public class Orders {
String alphabet = "abc";
ArrayList<String> list = new ArrayList<String>();
int n = alphabet.length();
Random rand = new Random();
for (int i = 0; i < 10000; i++){
char a = alphabet.charAt(rand.nextInt(n));
char b = alphabet.charAt(rand.nextInt(n));
char c = alphabet.charAt(rand.nextInt(n));
String s = Character.toString(a) + Character.toString(b) + Character.toString(c);
if(list.indexOf(s) == -1){
list.add(s);
}
}
system.out.println(arrayList);
}
Run Code Online (Sandbox Code Playgroud) 当它们在前面的方括号时是什么意思double.例如double[]
,在方法中使用return函数时是否有任何特殊的方法可以使用它们.
例如:
public double[] MethodName(){
}
Run Code Online (Sandbox Code Playgroud)
返回值的类型是什么?