0

index.phpにコードがある場合

if ($_GET['x']==="\x01\x03\x03\x07")
{
    echo 'OK';
}

では、どのように値 x を URL index.php?x= ???に渡すことができますか? 出力「OK」を取得します。ありがとう!

4

2 に答える 2

0

したがって、URL は次のようにする必要があります。

... index.php?x=\x01\x03\x03\x07

$_GET は次のようにする必要があります。

$_GET['x'] = "\\x01\\x03\\x03\\x07";

「OK」が返ってきます

「\x01\x03\x03\x07」(16 進値) を URL で送信した変数 x と比較するには、まず に変更'\x01\x03\x03\x07'する必要があります'\\x01\\x03\\x03\\x07'。なんで ?「\」を 2 倍にしないと比較できないからです。

したがって、次のように 16 進数を変数に配置する必要があります。

$hex = "\x01\x03\x03\x07";

'x' を編集済みの $hex (値は " \\x01\\x03\\x03\\x07") と比較します。$hex を編集/修正するには、関数 str_ireplace() を使用する必要があります。

例は次のとおりです。

$hex = "\x01\x03\x03\x07";
$hex_able_to_compare  = "\\x01\\x03\\x03\\x07";
$fixed = str_ireplace($hex,$hex_able_to_compare,$hex);
if ($_GET['x'] == $fixed){
echo "OK!";
}
else {
echo "Not OK!";
}

$hexしたがって、16 進を変数に配置して 16 進を比較することもできます。
しかし、問題は次のとおりです。16 進値が動的な場合はどうなるでしょうか。asの値$hex_able_to_compareも動的にする必要があります。:D

于 2013-07-27T03:50:35.747 に答える