Question

Hello I'm fairly new to php and I've started using strstok in .txt files. It works just fine until i want to tokenize with a word. I've been working on more complicated (1st year compsci level) program, but the following example will sum up the problem quite well.

For example if I have the string: "Hello world you are very beautiful today" and i want to tokenize using the word "very". If I would echo the two tokens, my desired output would be "Hello world you are beautiful today". However, when I try using a word, I never get that and I haven't found sources that explain how to do this with a simple explanation.

Here is the same thing in code:

    <?php
    function strtokTest(){
        $string = "Hello world you are very beautiful today.";
        $token = strtok($string, "very");
        while ($token != false){
            echo "$token";
            $token = strtok("very");
        } 
    }
    ?>

If I run this on a php page, the output will be:

Hllo wold ou a bautiful on this da.

It was funny at first, but now I'm sad. Can anyone tell me a good way to do this?

Thank you,

Alexander W

Was it helpful?

Solution

strtok() accepts only single characters as token delimiters. (Although you passing them all as a string)

You want explode():

foreach(explode(' very ', $str) as $token) {
    echo $token;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top