<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>