当问号出现时,parse_str不起作用?

lau*_*kok 1 php string variables query-string

例如,当我用'form.php?'之类的字符串传递字符串时,为什么会出现错误

parse_str('form.php?category=contacts');
echo $category;
Run Code Online (Sandbox Code Playgroud)

我明白了,

Notice: Undefined variable: category in C:\wamp\www\1hundred_2011_MVC\applications\CMS\category_manage.php on line xx
Run Code Online (Sandbox Code Playgroud)

但,

parse_str('category=contacts');
echo $category;
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的东西,

contacts
Run Code Online (Sandbox Code Playgroud)

我该怎么解决?我要通过像'xxx.php?category=contacts'得到'contacts'的变量或东西.

谢谢.

Mar*_*ers 8

该函数parse_str仅解析查询字符串,而不解析整个URL.尝试使用parse_url组件集来PHP_URL_QUERY首先提取查询字符串,然后使用parse_str它.

$url_query = parse_url('form.php?category=contacts', PHP_URL_QUERY);
parse_str($url_query, $output);
echo $output['category'];
Run Code Online (Sandbox Code Playgroud)

结果:

contacts

在ideone看到它.