PHP字符串不包含+;作为字符串中的新运算符空间?
我正在运行以下程序:PHP字符串不包含+;作为字符串中的新运算符空间?,php,Php,我正在运行以下程序: $file_content[122] = 'Shell "cmd.exe /c cd %appdata% & test.exe -o ' . $p. ' -u ' . $user . ' -p ' . $pass . ' & pause", vbMaximizedFocus'; $p基本上是$\u GET['p'] 用户将输入协议地址,如+tcp://host或http+udp://host我基本上需要字符串中的+ 我的问题是,因为p的值中有一个+字符,
$file_content[122] = 'Shell "cmd.exe /c cd %appdata% & test.exe -o ' . $p. ' -u ' . $user . ' -p ' . $pass . ' & pause", vbMaximizedFocus';
$p
基本上是$\u GET['p']代码>
用户将输入协议地址,如+tcp://host
或http+udp://host
我基本上需要字符串中的+
我的问题是,因为p
的值中有一个+
字符,所以我没有得到预期的响应 您不能以原始格式通过URL作为参数发送+
。因为PHP将把它作为查询字符串中的一个空格来读取
您需要做的是在将其放入URL之前,然后再添加
这会将+更改为编码版本
e、 例如,在:
$p = urlencode($some_value);
$url = 'some/path/here?p=' . $p . '&user=' . $user; // etc
// do your redirect
然后:
$p = urldecode($_GET['p']);
$file_content[122] = 'Shell "cmd.exe /c cd %appdata% & test.exe -o ' . $p. ' -u ' . $user . ' -p ' . $pass . ' & pause", vbMaximizedFocus';
我看不出有什么问题。如果$p中包含a+,则它将被包含而不会出现问题。基本上,如果用户将a+放入字符串中,我需要它将其包含在字符串中,而不是将其用作运算符。@user3152114:好的,这正是将要发生的事……我一定会很快尝试,谢谢!如果您在创建URL时也执行了urlencode
,那么它应该可以很好地工作urlencode($some_值);$some_值是多少,是$url吗?对于“DoyourRedirect”,我可以使用文件获取内容吗?