ホームページ >バックエンド開発 >PHPチュートリアル >規則的なルールを探すのは非常に難しい

規則的なルールを探すのは非常に難しい

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:29:021137ブラウズ

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>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。