0

このようなURLがある場合

site.com/index.php?name=JON%20%20%20%20%20%20%20SMIT

$_GET['name']変数を index.php ファイルに出力すると、結果はJon Smit.

つまり、JON と SMIT の間のキュー スペースが 1 つのスペースに置き換えられます。なぜこれが起こったのですか?

4

3 に答える 3

2

HTML は不要な空白を無視するため、名前にスペースをいくつ入れても、ブラウザーに出力すると、ブラウザーにはスペースが 1 つしか表示されません。 ブラウザーにすべてのスペースが表示されるようにするには、スペースを (改行しないスペース) に置き換える必要があります。

于 2013-01-26T08:12:43.677 に答える
1

これにより、スペースが保持されます。

print rawurldecode($_GET['name']);

これにより余分なスペースが出力されますが、ブラウザは余分なスペースを無視する場合があります。 ドキュメンテーション

于 2013-01-26T08:09:53.863 に答える
1

特殊文字 (スペースなど) が URL でエンコードされる方法が定義されています。Wiki も参照してくださいurlencodeを介して URL エンコードできます。その逆はurldecode です。

1 つのスペースのみについて: ページのソース (つまり、HTML コード) を調べます。Firefox では、Ctrl+U などを使用すると、さらに多くのスペースが存在します。BUT: ブラウザにはそのうちの 1 つしか表示されません。それらを出力に保持したい場合は、次のようなものを使用できます

echo '<pre>' . $_GET['name'] . '</pre>';

また

echo str_replace(' ', '&nbsp;', $_GET['name']);
于 2013-01-26T08:11:08.210 に答える