0

次の URL があります。

/eventfunctions.php?eventtype=Don%27t+Touch+The+Floor

そして私が使うとき

$_GET['eventtype'];

Don\'t と表示されていますが、なぜ \ が存在するのか、それを取り除く方法がわかりません。他の % 記号には \ がなく、'.

この \ を削除するにはどうすればよいですか?

4

4 に答える 4

1
stripslashes($_GET['eventtype']);

または、varをURLデコードしていない場合:

stripslashes(urldecode($_GET['eventtype']));
于 2012-10-23T21:48:19.710 に答える
1

バックスラッシュは、文字列が壊れないようにするために追加されるエスケープ文字です。

想像

$str = 'Don't';

バックスラッシュを削除するには、メソッドstripslashesを使用します

$str = stripslashes($_GET['eventtype']);
于 2012-10-23T21:50:10.990 に答える
1

これはmagic_quotes_gpcによるものです。

.htaccess ファイルに次の行を追加することで無効にできます。

php_flag magic_quotes_gpc Off

または、php.ini ファイルで magic_quotes_gpc の値を Off に変更します。

于 2012-10-23T21:52:11.253 に答える
1

PHPのmagic_quotes ini オプションが有効になっているため、バックスラッシュが変数$_GETと変数に自動的に追加されます。そのディレクティブは非推奨であり、代わりに、自動的にではなくユーザーが必要とするときにエスケープを行うことをお勧めします。そのオプションをon にするために古い PHP バージョンを使用している可能性があります。$_POST

コードが最新の PHP バージョンで使用される場合は、次の方法で移植可能なコードを記述できます。

if (get_magic_quotes_gpc()) { //if magic quotes is active
   stripslashes($_GET['eventtype']); //remove escaping slashes
}
于 2012-10-23T21:55:55.197 に答える