<span><span><span class="hljs-meta"><?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">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?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>