这两段代码一样?关于正则表达式以及字符转换处理

surfchen 2003-12-21 03:31:57
————————
<?php
$c="http://yubeinet.com/bbs";
preg_match_all ("|\[url\](.*)\[\/url\]|U",
"$c",$c_match, PREG_PATTERN_ORDER);
$array_num=count($c_match[0]);
for ($i=0;$i<$array_num;$i++)
{echo "$#@";

$c=str_replace("$c_match[0]['$i']","<a href='$c_match[1]['$i']'>$c_match[1]['$i']</a>","$c");

}
echo $c;
?>
______________________________
<?php
$c="http://yubeinet.com/bbs";
preg_match_all ("|\[url\](.*)\[\/url\]|U",
"$c",$c_match, PREG_PATTERN_ORDER);
print $c_match[0][0];
$array_num=count($c_match[0]);
echo $array_num;
for ($i=0;$i<$array_num;$i++)
{echo "$#@";

$match_all=$c_match[0][$i];
$match_sub=$c_match[1][$i];
$c=str_replace($match_all,"<a href='$match_sub'>$match_sub</a>",$c);
}
echo $c;
?>
_________________________-
如果不一样,他们不同之处是什么?
...全文
44 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
surfchen 2003-12-22
  • 打赏
  • 举报
回复
呵呵,我刚学正则,对PHP的几个正则函数还不是很熟悉,只学了MATCH——ALL,感觉够用了,就没看下去了~~~

不过我想不通为什么我第一段代码不行,有什么错误吗?能解释一下吗?
xuzuning 2003-12-22
  • 打赏
  • 举报
回复

要写作:
$c=str_replace($c_match[0][$i],"<a href='".$c_match[1][$i]."'>".$c_match[1][$i]."</a>","$c");

$c=str_replace("{$c_match[0][$i]}","<a href='{$c_match[1][$i]}'>{$c_match[1][$i]}</a>","$c");

其实有一个高效的写法
$c = "http://yubeinet.com/bbs";
$c .= "http://yubeinet.com/bbs1";
$c .= "http://yubeinet.com/bbs2";
echo preg_replace("|\[url\](.*)\[\/url\]|U","<a href='\\1'>\\1</a>",$c);
surfchen 2003-12-22
  • 打赏
  • 举报
回复
第一段我在WIN2K+IIS+PHP4.X测试只能输出
$#@http://yubeinet.com/bbs
第二段能输出
$#@http://yubeinet.com/bbs
$#@<a href='http://yubeinet.com/bbs'>http://yubeinet.com/bbs</a>


我实在想不通为什么会这样~~~
xuzuning 2003-12-22
  • 打赏
  • 举报
回复
有点呆,看不出两个输出的差别。咳咳...
$#@http://yubeinet.com/bbs
$#@<a href='http://yubeinet.com/bbs'>http://yubeinet.com/bbs</a>
surfchen 2003-12-22
  • 打赏
  • 举报
回复
没人回答吗?
多菜鸟 2003-12-21
  • 打赏
  • 举报
回复
有点意思。

21,891

社区成员

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

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