リンクを介して情報(文字列)を送信した後、文字列内のスペースを+記号に置き換えたいのですが、これが問題です。
html:
<a href="script.php?name=Eri+Son">send</a>
脚本:
$name = $_GET['name'];
str_replace(" ", "+", $name);
echo $name;
result: Eri Son
str_replace
によって返される値を$name
変数に割り当てていません。試す:
$name = str_replace(" ", "+", $name);
リテラル+
をクエリ文字列パラメータとして送信する場合は、次のようにurlencodeする必要があります。
<a href="script.php?name=<?php echo urlencode('Eri+Son'); ?>">send</a>
結果:
<a href="script.php?name=Eri%2BSon">send</a>
サーバー側では、$_GET[name]
が含まれますEri+Son
。他の答えと、クエリ文字列パラメータに対してstr_replaceを実行するというあなたの考えは間違っています。
これを試して
echo preg_replace(' ', '+', $name);