Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP字符串不包含+;作为字符串中的新运算符空间?_Php - Fatal编程技术网

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”,我可以使用文件获取内容吗?