0

以下のように String( Con\\ec't)をに割り当て$user_valます

$user_val = addslashes(Con\\ec't);

$user_val次に、グローバル定数として別の PHP ファイルに書き込みたいと思います。その後、スラッシュ付きの文字列にNAME定数を割り当てます

define ( 'NAME', 'Con\\\\ec\'t' );

以下のコードを使用して最初の文字列を取得しようとしました

 $mystring = stripslashes(NAME);

それは私に与えましCon\ec'tたが、私は手に入れたいCon\\ec'tです$mystring。ご存知でしたらお助けください。

4

3 に答える 3

1
define ( 'NAME', 'Con\\\\ec\'t' );

以下のコードを使用して最初のスティングを取得しようとします

$mystring = stripslashes(NAME);

それは私に Con\ec't を与えましたが、$mystring の Con\ec't を取得したいです

定数には既に値のみが含まれているため、strip_slashes のCon\\ec't 後に取得することはできません。NAME Con\\ec't

定数の定義で使用した 4 つのスラッシュは、1 つのスラッシュが次のスラッシュをエスケープするため、 2 つのスラッシュになります。\

したがって、2 つのバックスラッシュで strip_slashes を使用すると、当然、バックスラッシュは 1 つだけになります。ここで起こっている「魔法」は絶対にありません。

于 2013-05-28T12:20:51.553 に答える
0
$mystring = preg_replace('/\\+/', '\\', NAME);
于 2013-05-28T11:48:35.537 に答える
0

これは完璧ではないかもしれませんが、これは私にとってはうまくいきます。

 $user_val = base64_encode(Con\\ec't);

そして次のように定義します

define ( 'NAME', base64_decode('aHR0cDovL3NheHdWIvc2VhcmNo'));

出力はユーザーが入力した値と同じです is( Con\\ec't) このソリューションの欠点はありますか 説明してください

于 2013-06-10T05:53:00.060 に答える