当前位置: 首页> 最新文章列表> 想判断字符串是否以某字符开头?试试 PHP 的 substr 函数!

想判断字符串是否以某字符开头?试试 PHP 的 substr 函数!

gitbox 2025-08-24
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分与文章内容无关,可以放置一些初始化代码或注释</span></span><span>
</span><span><span class="hljs-comment">// 例如设置时区</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
标题:想判断字符串是否以某字符开头?试试 PHP 的 substr 函数!

在开发过程中,经常会遇到需要判断一个字符串是否以特定字符或子串开头的需求。PHP 提供了多种方法来实现这一功能,其中使用 substr 函数是一种简洁且高效的方案。

一、substr 函数简介
substr() 函数用于返回字符串的一部分。它的基本用法是:
string substr ( string $string , int $start [, int $length ] )

- $string:输入的字符串。
- $start:起始位置(从 0 开始)。
- $length:可选,返回子串的长度。

二、使用 substr 判断字符串开头

假设我们想判断字符串 $str 是否以子串 $prefix 开头,可以利用 substr 函数截取字符串开头与 $prefix 比较:

示例代码如下:
*/</span>

</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">startsWith</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$str</span></span></span><span>, </span><span><span class="hljs-variable">$prefix</span></span><span>) {
    </span><span><span class="hljs-comment">// 获取 $prefix 长度</span></span><span>
    </span><span><span class="hljs-variable">$len</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$prefix</span></span><span>);
    </span><span><span class="hljs-comment">// 截取字符串前 $len 个字符</span></span><span>
    </span><span><span class="hljs-variable">$start</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$len</span></span><span>);
    </span><span><span class="hljs-comment">// 判断是否相等</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span> === </span><span><span class="hljs-variable">$prefix</span></span><span>;
}

</span><span><span class="hljs-comment">// 测试示例</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$prefix1</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-variable">$prefix2</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">startsWith</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$prefix1</span></span><span>) ? </span><span><span class="hljs-string">"'<span class="hljs-subst">$str</span></span></span><span>' 以 '</span><span><span class="hljs-subst">$prefix1</span></span><span>' 开头\n" : </span><span><span class="hljs-string">"'<span class="hljs-subst">$str</span></span></span><span>' 不以 '</span><span><span class="hljs-subst">$prefix1</span></span><span>' 开头\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">startsWith</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$prefix2</span></span><span>) ? </span><span><span class="hljs-string">"'<span class="hljs-subst">$str</span></span></span><span>' 以 '</span><span><span class="hljs-subst">$prefix2</span></span><span>' 开头\n" : </span><span><span class="hljs-string">"'<span class="hljs-subst">$str</span></span></span><span>' 不以 '</span><span><span class="hljs-subst">$prefix2</span></span><span>' 开头\n";

<span class="hljs-comment">/*
输出结果:
'Hello, world!' 以 'Hello' 开头
'Hello, world!' 不以 'world' 开头

三、注意事项
1. substr 对中文字符串时,可能出现截取不完整的情况,因为一个中文字符占用多个字节。处理中文字符串建议使用 mb_substr 函数。
2. 如果需要判断忽略大小写,可以先将字符串和前缀都转成同一大小写形式(如 strtolower)。

四、总结
使用 substr 函数判断字符串是否以某字符或子串开头,代码简洁且易于理解,是很多 PHP 开发者常用的解决方案。当然,根据需求和字符编码不同,也可以选择其他方法,比如 strpos 或 mb_substr。

希望这篇文章能帮你更好地理解和应用 PHP 的 substr 函数!
*/</span>
</span></span>