php에서 스트링은 널문자를 허용한다.
<?
$someString = "some String include NULL Char \0 <=== 널문자 허용" ;
?>
<?=$someString?>
some String include NULL Char <=== 널문자 허용
요거로 찍힌다.
일반적으로 NULL 문자의 포함은 php 코딩시에 별로 문제가 되지 않지만 확장 모듈 작성시에는 C 코드로 작성되기 때문에 스트링 처리 할때 주의를 기울여야 한다. C에서는 널문자가 스트링의 끝을 의미하므로 의도치 않은 결과가 나올 수 있다. strcpy 나 strlen 등은 C스타일의 스트링을 기준으로 작성되어 있으므로 위의 스트링과 같은 경우 나머지부분은 짤리게 된다.
php 확장 모듈 작성중 발견한 사실.... 해결은 금방 되었지만 ㅋㅋ 모르는게 너무 많다는게 느껴지는 경험 이었음