-1

私はによって送信された文字列を持っています$_GET['foo']="C# Programmer";

エコーすると、 C$_GET['foo']のみが出力されます

文字列コンテナ # またはその他のシンボルが $_GET によって送信される場合、この問題を解決する方法はあります

4

3 に答える 3

2

スペースとハッシュ ( #) は HTTP URL では無効であり、パラメーター値で使用する場合はエンコードする必要があります。を使用urlencode()して、URL セーフなパラメーター値を作成できます。

以下が機能するはずです。

foo=C%23%20Programmer

GET別のページからリクエストを送信しようとしている場合は、次のようにする必要があります。

<?php 
$var = 'C# Programmer'; 
?>
<a href="select.php?foo=<?php echo urlencode($var) ?>"> Go </a>

では、select.phpを実行しようとするとecho $_GET['foo'];、 が表示されますC# Programmer

于 2013-09-30T15:27:02.580 に答える
1

この種の値を渡すには urlencode などの関数を使用し、この値を取得するには urldecode を使用します。postこの種の問題を回避する方法を利用してみてください

于 2013-09-30T15:27:25.973 に答える
1

-_ を除くすべての英数字以外の文字を含む文字列を返す urlencode という名前の関数を使用する必要があります。パーセント (%) 記号に置き換えられ、その後に 2 つの 16 進数とプラス (+) 記号としてエンコードされたスペースが続きます。

<?php 
$var = 'C# Programmer'; 
?>  <!-- end of PHP code -->
<a href="select.php?foo=
<?php echo urlencode($var) ?>  <!-- start and end of PHP code -->
"> Go </a>

実際の例

詳細については、urlencodeについてお読みください。

于 2013-09-30T15:31:44.470 に答える