那些年我们一起用过的 PHP 函数

Posted 流光瞬息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些年我们一起用过的 PHP 函数相关的知识,希望对你有一定的参考价值。

用这个帖子记录一下 php 中比较常用的函数以及使用过程中需要注意的点,此贴持续更新

1.strpos() 函数

    首先,我们知道 strpos() 函数是用于查找一个字符串在另一个字符串第一次出现的位置,示例如下:

<?php
  2 
  3 echo strpos("I love php, I love php too!", "php");

-----------------------------------------------------------

输出结果:

7

  表示 "php" 这个字符串在 "I love php, I love php too!" 这个字符串中第一次出现的位置是 7

       下面我们修改一下所要查找的字符串,如下:

<?php
  2 
  3 if(strpos("I love php, I love php too!", "I")) {
  4    echo "存在";
  5 }else{
  6    echo "不存在";
  7 }
------------------------------------------------------

输出结果:

不存在

  输出结果是不存在,是因为字符串 "I" 在 "I love php, I love php too!" 字符串中第一次出现的位置是 0,所以,如果

使用 strpos() 函数判断字符串中是否存在某个字符时必须使用 "=== false" 或 "!== false",示例如下:

 <?php
  2 
  3 if(strpos("I love php, I love php too!", "I") === false) {
  4    echo "不存在";
  5 }else{
  6    echo "存在";
  7 }

-------------------------------------------------------------------

输出结果:

存在

  但是 "=== false" 或 "!=== false" 并不是全部,这里还有一个坑需要填,示例如下:

<?php
  2 
  3 if(strpos("I like php 1", 1) === false) {
  4    echo "不存在";
  5 }else{
  6    echo "存在";
  7 }
-------------------------------------------------

输出结果:

不存在

  输出结果是"不存在",但是我们看到明明是存在的,这和我们的预期不一致,再仔细看一下我们发现 1 不是一个字符串,

strpos() 函数的第二个参数必须是一个字符串,如果我们不确定第二个参数的类型,我们可以使用 strval() 函数把它转换成字符串类型,

示例如下:

<?php
  2 
  3 $str = "I like php 1";
  4 $search = 1;
  5 
  6 if(strpos($str, strval($search)) === false) {
  7    echo "不存在";
  8 }else{
  9    echo "存在";
 10 }
-----------------------------------------------------

输出结果:

存在

  

以上是关于那些年我们一起用过的 PHP 函数的主要内容,如果未能解决你的问题,请参考以下文章

那些年我们用过的显示性能指标

那些年用过的机械键盘

那些年我们用过的机械键盘一把键盘,无限可能

那些年用过的xUnit.net的简单用法

那些年用过的机械键盘

PHP代码审计 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode