<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 這是前面與文章內容無關的 PHP 代碼示例</span></span><span>
</span><span><span class="hljs-variable">$placeholder</span></span><span> = </span><span><span class="hljs-string">"這段代碼與文章內容無關,僅作示例使用。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$placeholder</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">/**
* 文章正文:如何通過 substr 函數解決 PHP 字符串過長問題?
*
* 在 PHP 開發中,經常會遇到字符串過長的情況,比如從數據庫中獲取文章內容、用戶評論或其他文本數據時,
* 直接輸出可能會導致頁面佈局混亂或加載速度變慢。為了解決這個問題,可以使用 PHP 內置的 substr 函數對字符串進行截取。
*
* 1. substr 函數基礎用法
* substr 函數的基本語法如下:
*
* substr(string $string, int $start, ?int $length = null): string
*
* - $string:需要處理的原始字符串。
* - $start:開始截取的位置,0 表示從字符串開頭開始。
* - $length:可選參數,表示要截取的長度。如果不傳遞,則會截取到字符串末尾。
*
* 示例:
*/</span>
</span><span><span class="hljs-variable">$original</span></span><span> = </span><span><span class="hljs-string">"PHP 是一種流行的服務器端腳本語言,非常適合開發網頁和應用程序。"</span></span><span>;
</span><span><span class="hljs-variable">$shortened</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$original</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shortened</span></span><span> . </span><span><span class="hljs-string">"..."</span></span><span>; </span><span><span class="hljs-comment">// 輸出: PHP 是一種流行的服務器端...</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 2. 處理多字節字符
* 在處理中文、日文等多字節字符時,直接使用 substr 可能會出現亂碼。
* 解決方法是使用 mb_substr 函數:
*/</span>
</span><span><span class="hljs-variable">$original_cn</span></span><span> = </span><span><span class="hljs-string">"這是一個中文字符串示例,用來測試截取功能。"</span></span><span>;
</span><span><span class="hljs-variable">$shortened_cn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$original_cn</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shortened_cn</span></span><span> . </span><span><span class="hljs-string">"..."</span></span><span>; </span><span><span class="hljs-comment">// 輸出: 這是一個中文字符串...</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 3. 動態截取並添加省略號
* 可以根據需求動態判斷字符串長度,超過一定長度時才截取並添加省略號:
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">truncateString</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>) > </span><span><span class="hljs-variable">$length</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>) . </span><span><span class="hljs-string">"..."</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>;
}
}
</span><span><span class="hljs-variable">$example_text</span></span><span> = </span><span><span class="hljs-string">"通過 substr 或 mb_substr 函數,我們可以有效控制頁面顯示的文本長度,從而改善用戶體驗。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">truncateString</span></span><span>(</span><span><span class="hljs-variable">$example_text</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>); </span><span><span class="hljs-comment">// 輸出: 通過 substr 或 mb_substr 函數...</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 總結:
* 使用 substr 或 mb_substr 可以方便地控制 PHP 字符串的長度:
* - 對於英文或單字節字符,substr 足夠使用。
* - 對於中文或多字節字符,推薦使用 mb_substr。
* - 配合判斷長度和省略號,可以讓頁面顯示更加整潔友好。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 尾部无关代碼示例</span></span><span>
</span><span><span class="hljs-variable">$footer_note</span></span><span> = </span><span><span class="hljs-string">"本文示例結束。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$footer_note</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>