php
PHP - strtok 함수
string strtok ( string $str , string $token )
(PHP 4, PHP 5)
token 의 문자들을 기준으로 문자열(str)을 작은 문자열(토큰)로 나눕니다.
"This is an example string" 이라는 문자열이 있을 때, 공백(또는 임의 문자)를 사용하여 각각의 단어로 토큰화 할 수 있지만, explode 함수와는 달리 첫 번째 문자열만 나누며, 초기화 하지 않은 strtok 로 다음 문자열을 나눕니다.
아래는 도메인, 경로 토큰 예제입니다.
다음은 토큰 초기화하는 예제입니다.
이 함수는 성공하면 토큰문자를 반환하고, 실패하면 false 를 반환하지만, 간혹 0 이나 ""와 같은 빈 문자열을 반환할 수 있어서 === 연산자로 확인할 필요가 있습니다.
(PHP 4, PHP 5)
token 의 문자들을 기준으로 문자열(str)을 작은 문자열(토큰)로 나눕니다.
"This is an example string" 이라는 문자열이 있을 때, 공백(또는 임의 문자)를 사용하여 각각의 단어로 토큰화 할 수 있지만, explode 함수와는 달리 첫 번째 문자열만 나누며, 초기화 하지 않은 strtok 로 다음 문자열을 나눕니다.
<?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
*/
?>
<?php
$teststr = "blah1 blah2/blah3-blah4\\blah5";
$tok = strtok($teststr," /-\\");
while ($tok = strtok(" /-\\")){
echo $tok . "<br />\n";
}
/*
결과:
blah1
blah2
blah3
blah4
blah5
*/
?>
아래는 도메인, 경로 토큰 예제입니다.
<?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://habonyphp.com/admin/entry/post/hard_write', ':_/');
echo "단어 = " . strtok(":_/") . "<br />\n"; // 결과: 단어 = habonyphp.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"; // 결과:
?>
다음은 토큰 초기화하는 예제입니다.
<?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 이나 ""와 같은 빈 문자열을 반환할 수 있어서 === 연산자로 확인할 필요가 있습니다.
0 댓글