php代码怎么查询一串字符串的所有位置

fiy 其他 179

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要查询一串字符串在另一个字符串中的所有位置,可以使用PHP中的strpos()函数结合循环来实现。

    步骤如下:

    1. 定义两个变量,一个用于存储目标字符串,一个用于存储需要查询的字符串。
    “`
    $targetString = “目标字符串”;
    $searchString = “查询字符串”;
    “`

    2. 定义一个空数组用于存储查询到的位置。
    “`
    $positions = array();
    “`

    3. 使用循环逐个字符地搜索目标字符串。
    “`
    for ($i = 0; $i < strlen($targetString); $i++) { // 使用strpos()函数查找查询字符串在目标字符串中的位置 $pos = strpos($targetString, $searchString, $i); if ($pos !== false) { // 将查询到的位置添加到数组中 $positions[] = $pos; // 将查询的起始位置设置为已查询到的位置+1,继续下一次循环 $i = $pos + 1; }}```4. 输出查询到的所有位置。```foreach ($positions as $pos) { echo "查询字符串在目标字符串中的位置是:".$pos;}```整体代码如下:```$targetString = "目标字符串";$searchString = "查询字符串";$positions = array();for ($i = 0; $i < strlen($targetString); $i++) { // 使用strpos()函数查找查询字符串在目标字符串中的位置 $pos = strpos($targetString, $searchString, $i); if ($pos !== false) { // 将查询到的位置添加到数组中 $positions[] = $pos; // 将查询的起始位置设置为已查询到的位置+1,继续下一次循环 $i = $pos + 1; }}foreach ($positions as $pos) { echo "查询字符串在目标字符串中的位置是:".$pos;}```以上就是使用PHP查询一串字符串在另一个字符串中的所有位置的方法。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,你可以使用内置函数 `strpos()` 来查找一个字符串中指定子字符串的第一次出现的位置。但是该函数只能返回第一次出现的位置。如果你需要查找所有出现位置,可以使用一个循环来遍历字符串。

    下面是一个示例代码,演示了如何通过循环使用 `strpos()` 函数来查找字符串中指定子字符串的所有位置:

    “`
    = $length) {
    break;
    }
    }

    return $positions;
    }

    $string = “This is a test string. This is another test string.”;
    $substring = “test”;

    $positions = findAllOccurrences($string, $substring);

    echo “The substring ‘$substring’ appears at the following positions: “;
    foreach ($positions as $position) {
    echo “$position “;
    }
    ?>
    “`

    以上代码首先定义了一个名为 `findAllOccurrences()` 的函数,该函数接受两个参数:要查找的字符串和子字符串。函数首先初始化一个空数组 `positions` 来存储所有匹配的位置。

    然后,函数使用 `strlen()` 函数获取字符串和子字符串的长度。接下来,函数使用 `strpos()` 函数在字符串中查找子字符串的第一次出现的位置,并将该位置添加到数组 `positions` 中。

    然后,函数使用一个循环来重复以上步骤,直到无法找到更多的匹配项。循环中,我们更新 `offset` 变量的值,以便在下一次迭代中从上一次匹配的位置后一位继续查找。同时,我们需要检查 `offset` 是否已经超过了字符串的长度,以避免陷入死循环。

    最后,函数返回匹配位置的数组。

    在主程序中,我们定义了一个字符串和子字符串的示例。然后,我们调用 `findAllOccurrences()` 函数,将字符串和子字符串作为参数传递给它。最后,我们使用循环遍历数组 `positions`,并将每个位置打印到屏幕上。

    该代码将输出:`The substring ‘test’ appears at the following positions: 10 28`,表示子字符串 ‘test’ 在给定字符串中出现的位置。

    注意:以上代码只能找到子字符串在给定字符串中的位置,对于相邻或重叠的匹配,需要根据实际需求进行相应的处理。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,可以使用内置函数`strpos()`来查询一串字符串中子字符串的首次出现位置。

    `strpos()`函数的语法如下:

    “`php
    int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
    “`

    参数说明:
    – `$haystack`:需要在其中进行查找的字符串。
    – `$needle`:需要查找的子字符串。
    – `$offset`:可选参数,指定从`$offset`位置开始查找。

    函数返回子字符串在原字符串中首次出现的位置,如果未找到子字符串,则返回`false`。

    下面是使用`strpos()`函数查询一串字符串中子字符串的所有位置的示例代码:

    “`php

    “`

    在上面的示例代码中,我们定义了一个字符串`$string`和需要查询的子字符串`$substring`,并初始化查询的起始位置`$offset`为0。

    然后,我们使用一个while循环来不断查询子字符串在原字符串中的位置,直到找不到子字符串为止。在每次查询之后,我们将找到的位置存储在一个数组`$positions`中,并将查询的起始位置`$offset`设置为当前找到位置的下一个位置。

    最后,我们通过`print_r()`函数打印出所有找到的位置。

    运行以上示例代码,输出结果为:

    “`
    Array
    (
    [0] => 4
    [1] => 7
    )
    “`

    表示子字符串`”o”`在原字符串`”Hello World”`中出现的位置分别为4和7。

    通过以上方法,我们可以查询一串字符串中子字符串的所有位置。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部