0

我正在处理单个条目网站中的两个问号。

我正在尝试使用 urlencode 来处理它。原网址:

'search.php?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1'

我想在单入口网站中使用它:

'index.php?page='.urlencode('search?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1')

它不起作用,我不知道我是否必须使用urldecode它以及我也可以在哪里使用它。

4

3 回答 3

1

为什么不把它改写成

index.php?page=search&query=...

如果您使用 [QSA](查询字符串附加)标志,mod_rewrite 将为您执行此操作。

http://wiki.apache.org/httpd/RewriteQueryString

于 2009-11-23T14:02:52.387 回答
0

$_SERVER['QUERY_STRING']在第一个“?”之后会给你一切 在一个网址中。

从这里您可以使用“explode”或常见的 sting 函数进行解析。

例子:

http://xxx/info.php?test=1?test=2&test=3

$_SERVER['QUERY_STRING'] =>test=1?test=2&test=3

list($localURL, $remoteURL) = explode("?", $_SERVER['QUERY_STRING']);

$localURL => '测试=1'

$remoretURL =>'test=2&test=3'

希望这可以帮助

于 2009-11-23T15:28:00.750 回答
0

我建议您更改服务器代码的逻辑以处理更简单的查询表单。这样,在不久的将来,它可能会让你无处可去。

利用

index.php?page=search&query=...

作为您的查询格式,但不要使用 mod_rewrite 将其覆盖为您的第一个想要的格式,以满足您当前的应用程序逻辑,而是在服务器端使用一些更好的逻辑来处理它。写一些 ifs and thens、switches 和 case……但不要试图将应用程序的逻辑放入你的 URL 中。它会让你的 URL 变得非常尴尬,很快你就会发现该层没有足够的空间来处理你需要的所有逻辑。:)

于 2009-11-23T19:35:30.000 回答