You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何让wordwrap函数仅截断纯文本、不切割HTML代码

解决方案

有两种常用的处理方式,你可以根据自己的场景选择:

方案1:使用HTML感知的自定义折行函数(后端处理)

原生wordwrap不识别HTML标签,所以你需要自定义函数,遍历内容时跳过所有HTML标签内容,仅对文本部分计数折行,参考实现代码如下:

function html_wordwrap($str, $width = 60, $break = "<br/>", $cut = true) {
    $result = '';
    $tagOpen = false;
    $charCount = 0;

    for ($i = 0; $i < strlen($str); $i++) {
        $char = $str[$i];
        if ($char == '<') {
            $tagOpen = true;
            $result .= $char;
            continue;
        }
        if ($char == '>') {
            $tagOpen = false;
            $result .= $char;
            continue;
        }
        if (!$tagOpen) {
            $charCount++;
            if ($charCount >= $width && ($cut || ctype_space($char))) {
                $result .= $break;
                $charCount = 0;
                if (ctype_space($char)) continue;
            }
        }
        $result .= $char;
    }
    return $result;
}

使用的时候直接替换原来的wordwrap调用即可:

html_wordwrap($getPagina[$i]["message"], 60, "<br/>", true)

方案2:用CSS处理折行(更推荐,无需修改后端逻辑)

如果只是为了避免表格内文本溢出,完全可以交给浏览器原生处理,不用后端硬编码插入<br/>,给对应表格单元格添加如下CSS样式即可:

td {
    word-break: break-all;
    overflow-wrap: break-word;
    /* 可按需添加max-width规则限制单元格最大宽度 */
}

这个方案不会破坏原有HTML结构,也避免了后端处理HTML的各种边界问题,适配性更强。


内容的提问来源于stack exchange,提问作者One Piece Power

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:12:03