2010-04-19 3 views
1

Я использовал Stru Tokenizer в Java. Я хочу знать, есть ли аналогичная функциональность для PHP. У меня есть строка, и я хочу извлечь из нее отдельные слова.String tokenizer для PHP

например. Если строка -

Summer is doubtful #haiku #poetry #babel 

Я хочу знать, если он содержит хэштегом #haiku.

ответ

3

strpos, stripos, strstr, - простые решения.

strpos пример:

$haikuIndex = strpos($str, '#haiku'); 
if($haikuIndex !== FALSE) { 
    // "#haiku" exists 
} 

strstr пример:

$haikuExists = strstr($str, '#haiku'); 

if($haikuExists !== FALSE) { 
    // "#haiku" exists 
} 
+4

Да, я вижу, вы попали в старую яму. Всегда сравнивайте результат 'strpos' с' === false'! Это даже написано в ручном вводе, с которым вы связались. – deceze

+0

Да, это сошло с ума. В последнее время я делал слишком много Objective-C, чтобы помнить, как легко набирать (читайте: непредсказуемый) PHP. –

0

Вы можете также использовать strstr

if (strlen(strstr($str,'#haiku')) > 0) // "#haiku" exists 
+1

Из руководства 'strstr': Если вы хотите определить, имеет ли конкретная игла в стоге сена, используйте вместо нее более быструю и менее интенсивную память strpos(). – Young

5

Если вы хотите строку Tokenizer, то вы, вероятно, хотите функция strtok

<?php 
$string = "Summer is doubtful #haiku #poetry #babel"; 
$tok = strtok($string, " "); 
while ($tok !== false) { 
    if ($tok == "#haiku") { 
     // #haiku exists 
    } 
    $tok = strtok(" "); 
} 
?> 
Смежные вопросы