如何用正则表达式实现从[URL=xx]xxx [/URL]到xxx的替换

coolseafy 2003-04-01 09:22:46
我在做一个留言簿,支持标签功能
比如我想将[URL=http://www.sohu.com/detail.txt]点击查看全文[/URL] 替换成
<a href="http://www.sohu.com/detail.txt">点击查看全文</a>
如何才能做到
...全文
101 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2003-04-02
  • 打赏
  • 举报
回复
preg_replace函数可是用数组作为参数。也就是是说可以一次完成多个匹配和替换。功能是很强的。
贴一个小函数给你看看,应该容易理解的。
<?php
function ch_strtotime($d) {
$ar = array(
array("/今天|现在/","now "),
array("/昨|上|去/","-1 "),
array("/明|下/","+1 "),
array("/^前/","-2 "),
array("/^后/","+2 "),
array("/年/"," year "),
array("/月/"," month "),
array("/周|星期/"," week "),
array("/天|日/"," day"),
array("/小时/"," hours "),
array("/分/"," minutes "),
array("/秒/"," seconds "),
array("/(.+)后/","-\\1"),
array("/(.+)前/","-\\1")
);
for($i=0;$i<count($ar);$i++) {
$patterns[$i] = $ar[$i][0];
$replace[$i] = $ar[$i][1];
}
$d = preg_replace($patterns,$replace,$d);
echo "<br>",date("Y-m-d H:i:s",strtotime($d));
}

// 例
ch_strtotime("现在");
ch_strtotime("去年");
ch_strtotime("1小时3分40秒");
?>
ahuasky 2003-04-02
  • 打赏
  • 举报
回复
大哥这样替换有什么意思呀!可以讲一 下,感激不尽!如果能把代码写一些注释会好一些,唠叨好像在csdn里的php栏目到处有你!
xuzuning 2003-04-02
  • 打赏
  • 举报
回复
1、怎么知道的?
手册中有例子。理解了就会使用。
2、怎么学的?
多看、多试、多问、多用。
coolseafy 2003-04-02
  • 打赏
  • 举报
回复
唠叨老大,好用。我试了,如果你再告诉我你是怎么知道这么做的,就是你怎么学的
正则表达式我就给你100分
xuzuning 2003-04-02
  • 打赏
  • 举报
回复
$patterns = array(
"/\[URL ([^]]+)]/",
"/\[\/URL\]/"
);
$replace = array(
"<a href=\"\\1\">",
"</a>"
);
$s = preg_replace($patterns,$replace,$content);
coolseafy 2003-04-02
  • 打赏
  • 举报
回复
手册中的例子好像不多
coolseafy 2003-04-02
  • 打赏
  • 举报
回复
你是说php_manual_en手册吗?
coolseafy 2003-04-01
  • 打赏
  • 举报
回复
strUBB是什么东西
看不太懂,不知道怎么用
这样吧,我详细写一下
$content="附近阿克苏菲撒发觉得撒发恺撒[URL http://www.sohu.com/detail.txt]点击查看全文[/URL]发达三分散发达三分散夺得撒发";
现在我想让$content变成这么样的
$content="附近阿克苏菲撒发觉得撒发恺撒<a href=http://www.sohu.com/detail.txt>点击查看全文</a>发达三分散发达三分散夺得撒发";

-------------------------------------------------
如何做阿
wsj 2003-04-01
  • 打赏
  • 举报
回复
客户端脚本:

strHTML = strUBB.replace(/\[URL=(.*)\](.*)\[\/URL\]/gi,"<a href=$1>$2</a>")
youbest 2003-04-01
  • 打赏
  • 举报
回复
Replace可以办到的

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧