2011-09-09 34 views
0
<?php 
    $string = "sandesh commented on institue international institute of technology"; 
    /* Use tab and newline as tokenizing characters as well */ 
    $tok = strtok($string, " \n\t"); 
    echo $tok 
    ?> 

上面的代碼給出了輸出sandesh。關於Strtok在PHP中的疑問

但是如果我想輸出「評論國際技術學院」,那麼我應該如何修改上面的代碼。

感謝和問候 Sandesh

回答

2
<?php 
$string = "sandesh commented on institue international institute of technology"; 
echo substr($string,strpos($string," ")+1); 

文檔

編輯

我實際需要的第四代幣

<?php 
$string = "sandesh commented on institue international institute of technology"; 
$str_array = explode(" ",$string); 
$str_array = slice($str_array,4); 
echo implode(" ",$str_array); 
+0

喜,在這裏,我真正需要的字符串的第四代幣後,對於我可以重複這一過程,4倍,有什麼辦法直接我可以得到第四個標記後面的字符串,而不用放入循環。 –

+0

@Sandesh:編輯,添加解決方案,以滿足您的需求 –

1

後的字符串,因爲您是根據空間符號化,strtok給你第一個單詞。下一次你打電話給strtok,你會得到第二個單詞,等等。根據你提供的字符串和你提供的令牌,將字符串的其餘部分作爲一個單獨的令牌,是沒有辦法的。

+0

謝謝..我知道原因,我想它會記住指針。 –

+0

是的;它和C的strtok完全一樣。它會標記您提供的字符串,然後循環執行任何操作。 –

1

有沒有什麼辦法直接我可以得到第四個標記後的字符串, 沒有進入循環。

這將得到一個通過第四個空格後的字符串。

<?php 
$string = "sandesh commented on institue international institute of technology"; 
preg_match('/(?:.*?\s){4}(.*)/', $string, $m); 
$new_string = $m[1]; 
echo $new_string; 
?> 

輸出

技術國際研究所