原来还有preg_replace_callback这种方法

今天遇到一个问题,需要替换<code>标签中的换行符,但是不能替换<code>外的换行符,
苦思了良久没找到办法,偶然间看到了一个叫作preg_replace_callback的方法,我隐约感觉到这个方法可以解决这个问题。

文档里是这么描述的:preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换。

果然,只需要先匹配到<code>标签中的内容,然后在callback里替换换行符返回就ok啦 (〜 ̄△ ̄)〜
$str = preg_replace_callback(
'/<code>(.*?)\</code>\s*/is',
function ($matches) {
return preg_replace('/\n/', '', $matches[0]);
},
$str
);

评论1

评论请先登录

最近热帖

  1. 谁能超过我 222177
  2. 我才是第一名 38450
  3. 本站源码easyQA下载地址及安装配置文档 6298
  4. 百度的无刷新搜索,并不仅仅是使用了ajax,还有它的功劳! 4582
  5. 本站用的是什么富文本编辑器呢? 3314
  6. 本站源码下载及安装配置教程 2972
  7. (● ̄(エ) ̄●) 恳请大家不要发布无意义的测试帖子吧,测试也可以发有意义的文字呀 2928
  8. 我把它改成潮流分享的社区了。。。囧 2594
  9. 关于thinkphp图片上传插件,ajax+无刷新。 2527
  10. Apache2.x下websocket加密协议wss解决方案 2089

近期热议

  1. 本站源码easyQA下载地址及安装配置文档 56
  2. (● ̄(エ) ̄●) 恳请大家不要发布无意义的测试帖子吧,测试也可以发有意义的文字呀 24
  3. 社区新使用了又拍云来存储图片,测试一下上传图片 18
  4. 仔细从V型注册v 18
  5. 本站源码下载及安装配置教程 17
  6. 提问与回答增加上传图片、添加代码、表情、颜表情功能 15
  7. 百度的无刷新搜索,并不仅仅是使用了ajax,还有它的功劳! 14
  8. 本站用的是什么富文本编辑器呢? 13
  9. 你这个网站的搜索框 13
  10. 本站源码的开源开发进度与意见反馈 12