【问题标题】:Find In String - Count Position在字符串中查找 - 计数位置
【发布时间】:2014-07-02 05:47:35
【问题描述】:

我目前正在编写一小段代码来搜索字符串以找到给定的单词。

以下是我的做法:

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

    }
}

到目前为止,上面成功搜索了字符串,如果找到给定的单词,它也会回显它包含的字符串部分。注意,$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. website.com

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

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

知道如何实现这一目标吗?

【问题讨论】:

    标签: php string loops search


    【解决方案1】:

    当您指的是列表中的位置时,它的位置为 $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 {....
    

    【讨论】:

    • 这正是我想要做的。谢谢。
    【解决方案2】:
    function search($string) {
        if (strpos($string,'cat') !== false) {
            echo 'Found it on postition ';
            echo strpos($string,'cat')."</br>";
            echo $string;
        } else {
    
        }
    }
    

    【讨论】:

    • 这样做的问题是它会输出它所在字符串的字母位置:例如:第 18 个字母。
    • 缓存strpos($string,'cat')的返回值会更好。
    猜你喜欢
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多