PHP strpos() 函数 的位置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP strpos() 函数 的位置问题相关的知识,希望对你有一定的参考价值。

我在网上学习php,下面的文字是从教程上粘贴过来的,我的疑问是最后那段提示,我觉得按照正常的理解,hello是五字母,那world自然就排在第六啊,为啥提示反而说“之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。”,这句话彻底把我弄糊涂了,谁能帮解释下

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Hello world!" 中查找文本 "world":

实例
<?php
echo strpos("Hello world!","world");
?>

运行实例 »
上面的代码将输出:6
提示:在上面的实例中,字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。

字符串 "Hello world!"顺序分别是H(第0个)-e(第1个)-l(第2个)-l(第三个)-o(第四个)-空格(第五个)-w(第六个)-。。。。。。是从0开始数的,中间的空格也算一个字符 参考技术A 空格也算一个字符

PHP的strpos函数辨析

由于strpos在找不到内容时返回FALSE,因此,语法:

  if(strpos($str,$find)==0){
   //...实际是想在找到且位置为0时进入,结果如果找不到也会进入。
  }

在找不到时总会进入条件为真的逻辑,因为PHP里FALSE==0为真。

应修改为:


  if(strpos($str,$find)===0){
 
  }


类似的不少函数返回值,使用===更安全和准确。

以上是关于PHP strpos() 函数 的位置问题的主要内容,如果未能解决你的问题,请参考以下文章

php mb_strpos() 函数详解

PHP字符串函数之 strpos stripos strrpos strripos

php字符串操作 如何确定一个字符是不是在字符串中strpos函数貌似返回位置 若该字符在开头则返回0就是假了

PHP实现删除字符串中任何字符的函数

PHP的strpos函数辨析

php strpos() 查找字符串首次出现的位置