|
用AI弄的,不懂代码,弄了好几天
- <?php
- if (!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class plugin_identifier {
- function discuzcode($value) {
- global $_G;
- if ($value['caller'] == 'discuzcode' && isset($_G['discuzcodemessage'])) {
- // 获取要处理的内容
- $thread_message = $_G['discuzcodemessage'];
- // 第一步:移除所有的 <br> 标签
- $thread_message = preg_replace('/<br\s*\/?>/', '', $thread_message); // 先把 <br> 标签移除
- // 第二步:将所有换行符替换为统一的段落分隔符 <p></p>
- $thread_message = preg_replace('/\n+/', '</p><p>', $thread_message);
- // 第三步:确保每个段落都包裹在 <p></p> 标签中
- $thread_message = '<p>' . $thread_message . '</p>';
- // 第四步:移除每个 <p> 标签中如果仅有 <br> 标签的情况
- $thread_message = preg_replace('/<p>\s*<br\s*\/?>\s*<\/p>/', '', $thread_message); // 如果 <p> 标签中只有 <br> 标签,去除空段落
- // 第五步:移除段落内多余的空白或 <br> 标签
- $thread_message = preg_replace('/<p>\s*(<br\s*\/?>\s*)*<\/p>/', '<p></p>', $thread_message); // 如果段落内有多余的 <br> 标签,替换为空段落
- // 最后:处理去掉所有的多余换行符
- $thread_message = preg_replace('/\s+/', '', $thread_message); // 移除多余空格或换行符
- //如果要强行将所有空行删除,取消注释下面这行
- //$thread_message = preg_replace('/<p>\s*<\/p>/', '', $thread_message); //除多余的空 <p></p> 标签
- // 最终存储处理后的内容
- $_G['discuzcodemessage'] = $thread_message;
- }
- }
- }
- ?>
复制代码 将里面的
- if ($value['caller'] == 'discuzcode' && isset($_G['discuzcodemessage'])) {
复制代码 这段放到你的脚本里面,插件根目录xxx.class.php这个,每次换行都会加一个p标签,需要自行给P标签添加样式,比如.t_fsz p {margin: 16px 0; line-height: 26px;}这个需要自行修改测试,plugin_identifier是插件标识哈。
如果要强制将帖子里所有的空行移除的话。
- //如果要强行将所有空行删除,取消注释下面这行
- //$thread_message = preg_replace('/<p>\s*<\/p>/', '', $thread_message); //除多余的空 <p></p> 标签
复制代码 将这段取消注释
都5025年了,这种低级问题该改喽。
|
|