如何在PHP DOM中限制字符串输出长度?RSS解析内容截取150字符
解决RSS描述内容截断到前150字符的问题
嘿,这个需求很容易实现!你只需要先拿到完整的description内容,再用PHP的字符串截断函数处理就行。这里要注意多字节字符(比如中文、特殊符号)的情况,避免截断后出现乱码,所以推荐用mb_substr而不是普通的substr。
直接上修改后的代码:
// 先获取完整的description文本内容 $full_description = $channel->getElementsByTagName('description') ->item(0) ->childNodes ->item(0) ->nodeValue; // 修剪掉首尾空白,再截断到前150个字符(支持多字节编码) $channel_desc = mb_substr(trim($full_description), 0, 150); // 可选:如果原内容长度超过150,添加省略号提示用户内容被截断 if (mb_strlen($full_description) > 150) { $channel_desc .= '...'; }
为什么用mb_substr?
如果你的RSS内容包含中文、日文或者其他非ASCII字符,普通的substr是按字节数截断的,很容易把一个完整的字符劈成两半,导致乱码。而mb_substr是按字符数处理的,能完美适配多字节编码的文本。
如果你的RSS内容肯定是单字节编码(比如纯英文),用substr也可以,但mb_substr的兼容性更强,建议优先使用。
内容的提问来源于stack exchange,提问作者Dimas Lanjaka
相关产品推荐
相关产品推荐

