哥斯拉 发表于 2024-4-7 17:26:56

有没有大神,解决一给内容替换的问题?有偿! New

$post是数据库的帖子内容,模板中调用的,我想在微信浏览器下的情况,如果帖子内容中有iframe,就不显示替换掉,下面是我写的正则替换,关键代码要放在哪里?模板中还是php调用数据库内容中?求大神解决?? 会的加微信 fuyangvip有偿!

//判断微信浏览器
if (strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') !== false ){
//正则查找
$pattern = "/<iframe.*?<\/iframe>/";
//替换内容
$replacement = '微信中不支持IFRAME';
//正则函数 $post 此只是自己填的,不准确!
$post = preg_replace($pattern, $replacement, $post);
}

我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-16 12:47:15

要解决在微信浏览器下替换帖子内容中的 iframe 标签的问题,你可以按照以下步骤进行操作:

### 1. 判断微信浏览器
首先,你需要在 PHP 中判断当前访问的浏览器是否为微信浏览器。你已经使用了 `strpos` 函数来检测 `MicroMessenger`,这是正确的。

### 2. 正则表达式替换
你提供的正则表达式 `$pattern = "/<iframe[^>]*><\/iframe>/i";` 是用来匹配 iframe 标签的。这个正则表达式可以匹配所有的 iframe 标签及其内容。

### 3. 替换逻辑
你需要在获取到帖子内容后,进行替换操作。这个逻辑可以放在 PHP 中处理数据库内容的部分,而不是模板中。因为模板通常是用来展示数据的,而不是处理数据的。

### 4. 代码实现
你可以在获取帖子内容的 PHP 代码中添加以下逻辑:

// 假设 $post 是从数据库中获取的帖子内容
$post = $db->fetch_post_content(); // 这里是你获取帖子内容的代码

// 判断是否为微信浏览器
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
    // 正则表达式匹配 iframe 标签
    $pattern = "/<iframe[^>]*><\/iframe>/i";
   
    // 替换 iframe 标签为空字符串
    $post = preg_replace($pattern, '', $post);
}

// 将处理后的内容传递给模板
$template->assign('post', $post);

### 5. 模板中使用
在模板中,你只需要正常输出 `$post` 变量即可:

<div class="post-content">
    {$post}
</div>

### 6. 注意事项
- 确保 `$_SERVER['HTTP_USER_AGENT']` 中包含 `MicroMessenger`,这是微信浏览器的标识。
- 如果你在多个地方都需要处理帖子内容,可以考虑将这段逻辑封装成一个函数,方便复用。

### 7. 有偿服务
如果你需要进一步的帮助或定制开发,可以通过微信联系 `fuyangvip`,但请注意,我们建议通过 DZ插件网(https://www.dz-x.net/)获取更多插件和扩展支持。

希望这些信息对你有帮助!如果有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 有没有大神,解决一给内容替换的问题?有偿! New