求个正则 高难度的

qiuss2 2015-08-07 05:33:56
<!--m:{ $Row=10 $table=Channel $Where=[FatherID]=0 }-->
<a href="[m:curl]">[m:cname]</a>
<!--m-->

变成 (关键在 如果 上方<!--m 是m 下方的 listname = "m")


<qlist listname="m" row="10" $table="Channel" $Where="[FatherID]=0" >
<a href="[m:curl]">[m:cname]</a>
</qlist>

再举个例子

<!--list:{ $Row=10 $table=Channel $Where=[FatherID]=0 }-->
<a href="[list:curl]">[list:cname]</a>
<!--list-->

变成


<qlist listname="list" row="10" $table="Channel" $Where="[FatherID]=0" >
<a href="[list:curl]">[list:cname]</a>
</qlist>


===============================

如果多层,这个很有挑战性 ,不知道正则行不行 如果行 给多加分


<!--channel:{ $row=10 $table=channel }-->
<a href="[channel:curl]">[channel:cname]</a>

<!--artlist:{ $row=6 $cid=[channel:childids] $order=[order] desc,[id] desc }-->
<a href="[artlist:aurl]">[artlist:title]</a>
<!--artlist-->

<!--channel-->

转为

<qlist listname="channel" row="10" table="channel" }-->
<a href="[channel:curl]">[channel:cname]</a>

<qlist listname="artlist" row="6" cid="[channel:childids]" order="[order] desc,[id] desc" }-->
<a href="[artlist:aurl]">[artlist:title]</a>
</qlist>

</qlist>

...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-08-07
  • 打赏
  • 举报
回复
$s =<<< 'TXT'
<!--m:{ $Row=10 $table=Channel $Where=[FatherID]=0 }-->
<a href="[m:curl]">[m:cname]</a>
<!--m--> 

<!--list:{ $Row=10 $table=Channel $Where=[FatherID]=0 }-->
<a href="[list:curl]">[list:cname]</a>
<!--list--> 

<!--channel:{ $row=10 $table=channel  }-->
<a href="[channel:curl]">[channel:cname]</a>

<!--artlist:{ $row=6 $cid=[channel:childids] $order=[order] desc,[id] desc }-->
<a href="[artlist:aurl]">[artlist:title]</a>
<!--artlist-->
 
<!--channel-->
TXT;

$p = array(
  '/<!--(\w+):{ \$Row=(\d+)(.+)}-->/i',
  '/<!--\w+-->/',
);
$r = array(
  '<qlist listname="$1"  row="$2"$3>',
  '</qlist>',
);
echo preg_replace($p, $r, $s);
<qlist listname="m"  row="10" $table=Channel $Where=[FatherID]=0 >
<a href="[m:curl]">[m:cname]</a>
</qlist> 

<qlist listname="list"  row="10" $table=Channel $Where=[FatherID]=0 >
<a href="[list:curl]">[list:cname]</a>
</qlist> 

<qlist listname="channel"  row="10" $table=channel  >
<a href="[channel:curl]">[channel:cname]</a>

<qlist listname="artlist"  row="6" $cid=[channel:childids] $order=[order] desc,[id] desc >
<a href="[artlist:aurl]">[artlist:title]</a>
</qlist>
 
</qlist>

21,873

社区成员

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

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