2014-07-02 84 views
0

我目前正在编写一小段代码来搜索字符串以查找给定的单词。查找字符串 - 计数位置

以下是我如何做它:

function search($string) { 
    if (strpos($string,'cat') !== false) { 
     echo 'Found it'; 
     echo $string; 
    } else { 

    } 
} 

到目前为止,上述成功查找字符串,如果找到了给定词也将回声出它包含字符串的一部分in。注意,$ string是FOR循环的输出。

for ($i = 0; $i < $hrefs->length; $i++) { 
     $href = $hrefs->item($i); 
     $string = $href->textContent; 

      search($string); 

    } 

向您展示的FOR循环输出如下:

  1. website.com
  2. cat.com
  3. website.com
  4. website.com
  5. 网站.com

所以我的代码通过输出检查,找到包含单词cat的URL并且成功。

但是,我也想做它计算字符串猫的位置是什么位置。因此,如果它在字符串的第二个URL中找到,我也希望能够输出“位置2”。

有关如何实现这一点的任何想法?

回答

0

当你是指在列表中的位置,其位置$ i + 1。

for ($i = 0; $i < $hrefs->length; $i++) { 
    $href = $hrefs->item($i); 
    $string = $href->textContent; 

     if search($string) echo 'Position is ' . $i+1; 

} 

function search($string) { 
    if (strpos($string,'cat') !== false) { 
     return TRUE; 
    } else {.... 
+0

这正是我想要做的。谢谢。 – user3788673

0
function search($string) { 
    if (strpos($string,'cat') !== false) { 
     echo 'Found it on postition '; 
     echo strpos($string,'cat')."</br>"; 
     echo $string; 
    } else { 

    } 
} 
+0

这样做的问题在于,它输出字符串的字母位置:例如:第18个字母。 – user3788673

+0

如果你缓存strpos($ string,'cat')'的返回值会更好。 –

相关问题