ホームページ >バックエンド開発 >PHPチュートリアル >規則的なルールを探すのは非常に難しい
cdd41d9617ce9ba0becb20d451e0e41b
f10633dc917d5f31ef37df6cc6d4cea1[m:cname]5db79b134e9f6b82c0b36e0489ee08ed
1ddb6c5bc9b115423ef8c9cc465f8b67
变成 (关键在 如果 上方ade72cb29a3f4cbdd67d7f9e080faecc
f10633dc917d5f31ef37df6cc6d4cea1[m:cname]5db79b134e9f6b82c0b36e0489ee08ed
f3581afbe618af8e7e690ef305a5e3c9
再举个例子
6dbb63e553b8ba9cf73b9347c5430bce
ef67be8bd5a2d3f5e56d777e782b30a6[list:cname]5db79b134e9f6b82c0b36e0489ee08ed
84f41acc6a819de44f9697258720d56e
变成
36a222e3496b88138cc6c47c4f3219bf
ef67be8bd5a2d3f5e56d777e782b30a6[list:cname]5db79b134e9f6b82c0b36e0489ee08ed
f3581afbe618af8e7e690ef305a5e3c9
===============================
如果多层,这个很有挑战性 ,不知道正则行不行 如果行 给多加分
aadb178de162617eabaaf7173bd9aa12
99c0a97b0de5481ee5ff4f1b2d854548[channel:cname]5db79b134e9f6b82c0b36e0489ee08ed
6255a0c0e50bd16144c851065b16343c
314cc486a099eb8c6d1d100560661ebd[artlist:title]5db79b134e9f6b82c0b36e0489ee08ed
c43f8792af1a4fc007bfd38f68b27f4a
60ce68bd13ffbd00dc12c288e6bd8da7
转为
4e8fdebb9d57ff5d45b845dec6dfdb35
99c0a97b0de5481ee5ff4f1b2d854548[channel:cname]5db79b134e9f6b82c0b36e0489ee08ed
2c97f8a4f29b2b6c23d30043a9218429
314cc486a099eb8c6d1d100560661ebd[artlist:title]5db79b134e9f6b82c0b36e0489ee08ed
f3581afbe618af8e7e690ef305a5e3c9
f3581afbe618af8e7e690ef305a5e3c9
$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>