Paradigm Shift Design

ISHITOYA Kentaro's blog.

終端文字\0の除去

小一時間悩んだ。


携帯電話でどうしてもセッションが継続されず、セッションIDをダンプしたら、終端にヌル文字?がついていた。で、除去しようと、

<?php
trim($session_id, '\0');
?>

とかすると、「\0」だけでなく「0」まで削除されてしまう。なぜ。

<?php
$d = "hoge0\\0";
var_dump($d);
var_dump(trim($d, "\\0"));
var_dump(str_replace("\\0", "", $d));
?>
$ php -f null.php
string(7) "hoge0\0"
string(4) "hoge"
string(5) "hoge0"

な感じ。str_replaceでいいのね。
しかし、このヌル文字はどこから来ているんだ。