공지

레이블이 스트링인 게시물을 표시합니다. 모든 게시물 표시
레이블이 스트링인 게시물을 표시합니다. 모든 게시물 표시

2006년 8월 21일 월요일

php의 스트링 처리 방식 및 확장 모듈에서의 스트링 처리 팁

php에서 스트링은 널문자를 허용한다.
<?
$someString = "some String include NULL Char \0 <=== 널문자 허용" ;
?>
<?=$someString?>

이 코드는 정확히
some String include NULL Char  <=== 널문자 허용
요거로 찍힌다.

일반적으로 NULL 문자의 포함은 php 코딩시에 별로 문제가 되지 않지만 확장 모듈 작성시에는 C 코드로 작성되기 때문에 스트링 처리 할때 주의를 기울여야 한다. C에서는 널문자가 스트링의 끝을 의미하므로 의도치 않은 결과가 나올 수 있다. strcpy 나 strlen 등은  C스타일의 스트링을 기준으로 작성되어 있으므로 위의 스트링과 같은 경우 나머지부분은 짤리게 된다.


php 확장 모듈 작성중 발견한 사실.... 해결은 금방 되었지만 ㅋㅋ 모르는게 너무 많다는게 느껴지는 경험 이었음