PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在PHP中查找多个字符串位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个解析给定URL的 PHP​​页面.我能做的只是找到第一次出现,但当我回应它时,我得到另一个值而不是给定的值.

这就是我到现在所做的.

<?PHP
$URL = @"my URL goes here";//get from database
$str = file_get_contents($URL);
$toFind = "string to find";
$pos = strpos(htmlspecialchars($str),$toFind);
echo substr($str,$pos,strlen($toFind)) . "<br />";
$offset = $offset + strlen($toFind);
?>

我知道可以使用循环,但我不知道循环体的条件.

我怎样才能显示我需要的输出

这是因为你在htmlspecialchars($str)上使用了strpos,但你在$str上使用了substr.

htmlspecialchars()将特殊字符转换为HTML实体.举一个小例子:

// search 'foo' in '&foobar'

$str = "&foobar";
$toFind = "foo";

// htmlspecialchars($str) gives you "&amp;foobar"
// as & is replaced by &amp;. strpos returns 5
$pos = strpos(htmlspecialchars($str),$toFind);

// Now your try and extract 3 char starting at index 5!!! in the original
// string even though its 'foo' starts at index 1.
echo substr($str,strlen($toFind)); // prints ar

解决这个问题,请在两个函数中使用相同的haystack.

要回答你在其他问题中找到一个字符串的所有出现的其他问题,你可以使用strpos的第三个参数offset,它指定从哪里搜索.例:

$str = "&foobar&foobaz";
$toFind = "foo";
$start = 0;
while($pos = strpos(($str),$toFind,$start) !== false) {
        echo 'Found '.$toFind.' at position '.$pos."\n";
        $start = $pos+1; // start searching from next position.
}

输出

大佬总结

以上是大佬教程为你收集整理的在PHP中查找多个字符串位置全部内容,希望文章能够帮你解决在PHP中查找多个字符串位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: