📌  相关文章
📜  网络技术问题 | PHP测验 |第 2 组 |问题 3(1)

📅  最后修改于: 2023-12-03 15:11:44.751000             🧑  作者: Mango

网络技术问题 | PHP测验 |第 2 组 |问题 3

问题描述

在PHP中,如何判断一个字符串是否以另一个字符串开头或结尾?

解决方案

在PHP中要判断一个字符串是否以另一个字符串开头或结尾,可以使用以下两个函数:

  • strpos():查找一个字符串在另一个字符串中第一次出现的位置,如果没有找到返回false

语法:

strpos(string $haystack, string $needle, int $offset = 0): int|false

参数说明:

  • $haystack:要查找的字符串
  • $needle:要查找的目标字符串
  • $offset:可选参数,查找的开始位置,默认为0

示例:

$str = 'Hello world';
if (strpos($str, 'Hello') === 0) {
    echo '以Hello开头';
}
if (strpos($str, 'orld') === strlen($str) - strlen('orld')) {
    echo '以orld结尾';
}
  • substr():返回一个字符串的子串,从第 $start 个字符开始截取字符串,并返回 $length 个字符的长度。如果 start 是负数,则返回的字符串从字符串结尾开始算起

语法:

substr(string $string, int $start, int|null $length = null): string|false

参数说明:

  • $string:要截取的字符串
  • $start:截取的起始位置,可以为负数
  • $length:可选参数,截取的字符长度,默认为字符串的长度

示例:

$str = 'Hello world';
if (substr($str, 0, 5) === 'Hello') {
    echo '以Hello开头';
}
if (substr($str, -4) === 'orld') {
    echo '以orld结尾';
}
注意事项
  • 以上两个函数都是区分大小写的,如果要不区分大小写,可以使用stripos()substr_compare()函数
  • $needle$length都可以为非整数类型,但是它们都会被转换为整数类型