天天看點

PHP字元串開頭和結尾的判斷方法

1、知識準備

// 計算字元串長度
echo strlen("hello") . PHP_EOL;
// 5

// 截取字元串
echo substr("hello world!", 6, 5) . PHP_EOL;
// world

// 查找子串起始位置
echo strpos("hello world!", "world"). PHP_EOL;
// 6      

2、字元串開頭結尾判斷

//變量:
$s1 = "hello";
$s2 = "hello world!";
$s3 = "world hello";

//php判斷字元串開頭:
var_dump(substr($s2, 0, strlen($s1)) === $s1); 
// bool(true)

var_dump(strpos($s2, $s1) === 0);
// bool(true)

//php判斷字元串結尾:
var_dump(substr($s3, strpos($s3, $s1)) === $s1);
// bool(true)      

3、函數封裝

<?php
/**
 * 字元串工具類
 */
class StringUtil{
    public static function startsWith(string $string, string $subString) : bool{
        return substr($string, 0, strlen($subString)) === $subString;
        // 或者 strpos($s2, $s1) === 0
    }
    
    public static function endsWith(string $string, String $subString) : bool{
        return substr($string, strpos($string, $subString)) === $subString;
    }
}      

測試代碼

var_dump(StringUtil::startsWith('hello world', 'hello'));
// bool(true)

var_dump(StringUtil::startsWith('hello world', 'world'));
// bool(false)


var_dump(StringUtil::endsWith('hello world', 'hello'));
// bool(false)

var_dump(StringUtil::endsWith('hello world', 'world'));
// bool(true)