PHP String substr_compare()函数

PHP String substr_compare()函数

substr_compare()是PHP的内置函数,用于比较两个字符串的指定起始位置到指定结束位置。该函数是一个 二进制安全 的函数,还可以选择 区分大小写PHP 5及以上版本支持此函数。

语法

substr_compare()函数的语法如下所示。

substr_compare( String main_str,  Stringstr, int start_pos, int length, Boolean case-insensitivity = FALSE) 

这个函数由五个参数组成,其中三个是必需的,另外两个是可选的。下面是这些参数的描述:

参数

$main_str (必选): 这是这个函数的主字符串参数,需要进行比较。这是一个必需参数。

$str (必选): 这是这个函数的第二个字符串参数,用来进行比较。和$main_str一样,这也是一个必需参数。

$start_pos (必选): 这是一个必需参数,它具有一个整数值。这个参数指定了在$main_str中从哪个位置开始比较$str。换句话说,它提供了比较的起始位置。

如果传递的值是负数,则从字符串的末尾开始比较。

$length (可选): 这个参数在这个函数中不是必须传递的。它表示比较的长度,也就是指定了要比较$str的多少部分。

$case-insensitivity (可选): 这个参数包含一个布尔值,指定是否执行大小写不敏感的比较。它和$length一样,是一个可选参数。如果$case-insensitivityTRUE 的话,那么比较将是大小写不敏感的。

  • FALSE – 大小写敏感(默认值)
  • TRUE – 大小写不敏感

返回值

这个函数返回以下值:

返回 0 – 如果给定的两个字符串相等。

**返回 < 0 – ** 如果$main_str(从起始位置)小于$str

**返回 > 0 – ** 如果$main_str(从起始位置)大于$str

注意: 如果$length参数值等于或大于主字符串($main_str)的长度,那么这个函数会显示一个警告并返回FALSE。

变更日志

版本 描述
PHP 5.1.0 可以使用负的 start_pos。
PHP 5.5.11 $length 现在可以为0。
PHP 7.2.18, 7.3.5 $start_pos 可能等于主字符串 ($main_str) 的长度。

示例

以下给出了一些示例,以了解substr_compare()函数的工作方式。

示例1

在下面的示例中,我们在该函数中传递了3个必需的参数。让我们看看substr_compare()在三个参数下的工作情况。

<?php
    main_str = "Good health Good life.";string2 = "Good health Good life.";
    // both strings are equal to each other.
    echo substr_compare(main_str,string2, 0). "</br>";

    // the main string is 11 chracters greater than string2 including whitespace.
    echo substr_compare(main_str, "Good health", 0). "</br>";

    // the main string is 5 characters shorter than string2 including whitespace.
echo substr_compare(main_str, "Good health Good life. Good", 0). "</br>";
?>

输出:

0
11
-5

示例2

<?php
    // main strting is greater than the second string.
    echo substr_compare("Hello javaTpoint","Hello", 0). "</br>";

    // both strings are equal, as comparison start at 6th position.
    echo substr_compare("Hello javaTpoint","javaTpoint", 6). "</br>";

    // main string and next comparable string are not same, so it will return -1
    echo substr_compare("Hello javaTpoint","hie", 0). "</br>";
?>

输出:

11      
0       
-1

示例3

<?php
    // both strings are equal from position 0 to 4.
    echo substr_compare("Hello javaTpoint","Hello", 0, 4). "</br>";

    // second string is not found between 6 to 10 position, because by default it is case-sensitive.
    echo substr_compare("Hello javaTpoint","JAVATPOINT", 6, 10). "</br>";

    //As Hello is present in the string, but not found between 5 to 14 range.
    echo substr_compare("Hello javaTpoint","Hello", 5, 14). "</br>";
?>

输出:

0       
1       
-1

示例4: 大小写敏感/不敏感

在下面的示例中,我们传递了该函数的所有五个参数。让我们通过所有参数来看substr_compare()的工作原理。

<?php
    main_str = "Good health Good life.";string2 = "Good health Good life.";
    case_insensitivity = FALSE;
    // here, this function works as case-insensitive
    echo substr_compare(main_str, string2, 0, 9, TRUE). "</br>";

    // here, this function case-sensitive    echo substr_compare(main_str, "GOOD Health", 0, 11, case_insensitivity). "</br>";

    //the function works as case-insensitive
    echo substr_compare(main_str, "GOOD health", 0, 11, TRUE). "</br>";
?>

输出:

0       
1       
0   

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程