加上 echo strpos($str,'is',3); 为什么输出55 呢?
<?php //查找字符串 $str = 'What is your name?'; $pos = strpos($str,'name'); echo $pos; echo "<br>"; echo strpos($str,'your'); echo "<br>"; echo strpos($str,'is'); echo strpos($str,'is',3); ?>
<?php //查找字符串 $str = 'What is your name?'; $pos = strpos($str,'name'); echo $pos; echo "<br>"; echo strpos($str,'your'); echo "<br>"; echo strpos($str,'is'); echo strpos($str,'is',3); ?>
2015-03-30
对的 就是应该输出55,应为 strpos() 函数本身是返回首次出现的位置,你要查找的字符在字符串中的位置是固定的,所以就是5 5 。后面的这个参数是 偏移量,意思是从某个位置查找并不是从某个位置开始计算。看下面的例子。
<?php
//忽视偏移量查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a');//这里返回的值是0
?>
当我们想要找第二个 “a" 时候就要用到便宜量
<?php
//使用偏移量
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0 这里偏移量改成2 返回还是7.因为是从第2个字符开始查找 而不是从第2个字符开始计算
?>
举报