當前位置: 首頁> 最新文章列表> 想判斷字符串是否以某字符開頭?試試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>