공지

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

댓글 1개:

  1. 널문자 ㅡㅡ;;



    무슨 소린가 했다는.. ㅋㅋㅋㅋ

    간만에 글 쓰는구만

    답글삭제