PHP взорваться от нулевого символа - PullRequest
7 голосов
/ 22 марта 2011

Я пытаюсь взорвать строку на том, что похоже на нулевой символ.

Вот что я использую: $exp = explode('\x00', $bin);.

Хотя это не работает. Однако, если я сделаю $exp = explode($bin[5], $bin); (где символ 5 из $bin - это тот символ, на которого я хочу взорваться), он будет работать нормально.

Если я это сделаю var_dump($bin[5]) Это показывает мне квадратный блок с вопросительным знаком в нем (), и в исходном виде я получаю: �

Может кто-нибудь сказать мне, как лучше всего взорваться на этом персонаже? или даже если это нулевой символ (который согласно таблицам ascii, если только я не читаю все неправильно).

Спасибо

1 Ответ

13 голосов
/ 22 марта 2011

Попробуйте двойные кавычки:

$exp = explode("\x00", $bin);

В качестве альтернативы, захватите эквивалентный код символа ASCII и передайте его, используя chr.

$char = ord($bin[5]);

// Replace this with the actual number returned from ord
$exp = explode(chr($char), $bin);

В этом последнем примере исключается вероятность того, что он может на самом деле небыть нулевым символом, если вы еще не определили его.

...