try:
$text=str_replace("=", ":", str_replace("|", " ", preg_replace("/\[code=js\?(.*?)]/","\\1",$text)));
$text=str_replace("=", ":", str_replace("|", " ", preg_replace("/\[code=js\?(.*?)]/","\\1",$text)));
统一写成这样不行吗?
$text="[code=js&num=10&long=40&rows=2]";
$text="[code=js&num=10&long=40&";
$text="[code=js&long=40&rows=2&num=10]";
谢谢你。你的这个可以 得出 num:10 long:40 rows:2,但是我没有办法将num,long,rows这些作为变量来使用,
TO:xuzuning(唠叨)
我想做标签,就麻烦你帮帮忙了。
统一写我觉得不是很可行,因为标签不止这一种。
比如 [code=js]除了上面那几种外,还有:
[code=js&rows=2&num=10&long=40]
[code=js&sort=new&rows=2&num=10&long=40&skin=1&img=yes&offset=1] ...
等等,可以我希望这些标签可以自由组合.
=================================
<?php$text="[code=js?num=10|long=40|rows=2]";print_r(getTagVars($text));function getTagVars( $tag )
{
$tagVars = array();
$main = substr( $tag, 1, strlen( $tag ) - 2 );
$main = str_replace( "?", "|", $main ); //如不使用?则可省去这步
$pairs= explode( "|", $main );
while( list( , $pair ) = each( $pairs ) )
{
$kv = explode( "=", $pair );
$tagVars[$kv[0]] = $kv[1];
}
return $tagVars;
}
?>