string strtok ( string $str , string $token ) (PHP 4, PHP 5)

token 의 문자들을 기준으로 문자열(str)을 작은 문자열(토큰)로 나눕니다. 즉, "This is an example string"이라는 문자열이 있을 때, 공백(또는 임의 문자)를 사용하여 각각의 단어로 토큰화 할 수 있지만, explode함수와는 달리 첫 번째 문자열만 나누며, 초기화 하지 않은 strtok로 다음 문자열을 나눕니다.

예제 (ex #1

  <?php
 $string 
"This is\tan example\nstring"
;
 
// 탭과 줄바꿈도 토큰화 문자열로 사용합니다.
 // 공백, 탭, 줄바꿈을 만나면 나눕니다.
 
$tok strtok($string" \n\t"
);

 
// 첫 문자열만 나누어 반환하기 때문에
 // while 반복문으로 다음 문자열을 나눕니다.
 
while ($tok strtok(" \n\t"
)) {
    echo 
"단어 = $tok<br />\n"
;
 }
 
/*
 결과:
 단어 = This
 단어 = is
 단어 = an
 단어 = example
 단어 = string
 */


 // . #을 기준으로 나눕니다.
 
$selector 'div.class#id'
;
 
$tagname strtok($selector,'.#'
);
 echo 
$tagname.'<br/>'
// 결과: div

 
while($tok strtok('.#'
))
 {
      echo 
$tok.'<br/>'
;
 }
 
/*
 결과:
 class
 id
 */
 
?> 


예제 (ex #2

  <?php
 $teststr 
"blah1 blah2/blah3-blah4\\blah5"
;
 
$tok strtok($teststr," /-\\"
);
 while (
$tok strtok(" /-\\"
)){
      echo 
$tok "<br />\n"
;
 }
 
/*
 결과:
 blah1
 blah2
 blah3
 blah4
 blah5
 */
 
?>


도메인, 경로 토큰 예제입니다.

예제 (ex #3

 <?php
 
// : _ /를 만나면 나눕니다.
 // echo $tok; // 결과: http
 
$tok strtok('http://en.wikipedia.org/wiki/Barack_Obama'':_/'
);
 while (
$tok strtok(":_/"
)) {
    echo 
"단어 = $tok<br />\n"
;
 }
 
/*
 결과:
 단어 = en.wikipedia.org
 단어 = wiki
 단어 = Barack
 단어 = Obama
 */


 // echo $tok; // 결과: http
 
$tok strtok('http://habony.tistory.com/admin/entry/post/hard_write'':_/'
);

 echo 
"단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = habony.tistory.com
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = admin
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = entry
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = post
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = hard
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = write

 // 더 이상 나눌 값이 없으므로 false 입니다.
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 
 
?> 


다음은 토큰 초기화 예제입니다.

예제 (ex #4

  <?php
 $str 
'http://kr.news.yahoo.com/service/news/shellsection.htm?linkid=16'
;

 echo 
strtok($str':_/'); . "<br />\n"
// 결과: http
 
echo strtok(":_/") . "<br />\n"
// 결과: kr.news.yahoo.com
 
echo strtok(":_/") . "<br />\n"
// 결과: service

 // 초기화합니다.
 
echo strtok($str":_/") . "<br />\n"
// 결과: http
 
echo strtok(":_/") . "<br />\n"
// 결과: kr.news.yahoo.com
 
echo strtok(":_/") . "<br />\n"
// 결과: service
 
...
 
?>


이 함수는 성공하면 토큰문자를, 실패하면 false를 반환하지만, 간혹 0 이나 ""와 같은 빈 문자열을 반환할 수 있어서 === 연산자로 확인해 주어야 합니다. 
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요