一尘不染

PHP查找字符串中所有出现的子字符串

php

我需要解析一个HTML文档并查找其中所有出现的字符串asdf

我目前将HTML加载到字符串变量中。我只需要字符位置,这样我就可以遍历列表以在字符串之后返回一些数据。

strpos函数仅返回第 一个 匹配项。如何 全部 归还呢?


阅读 257

收藏
2020-05-29

共1个答案

一尘不染

在不使用正则表达式的情况下,类似这样的方法应该可以返回字符串位置:

$html = "dddasdfdddasdffff";
$needle = "asdf";
$lastPos = 0;
$positions = array();

while (($lastPos = strpos($html, $needle, $lastPos))!== false) {
    $positions[] = $lastPos;
    $lastPos = $lastPos + strlen($needle);
}

// Displays 3 and 10
foreach ($positions as $value) {
    echo $value ."<br />";
}
2020-05-29