欢迎各位兄弟 发布技术文章
这里的技术是共享的
<?php if(!defined('DEDEINC')) { exit("Request Error!"); } function lib_array(&$ctag,&$refObj) { //下面这个取得数组变量 $arr = $GLOBALS[$ctag->GetAtt('array')]; $attlist = "topid|0,row|10"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $condtion=""; $revalue=''; if(trim($ctag->GetInnerText())=='') $innertext = "[field:content /]"; else $innertext = $ctag->GetInnerText(); /*这里开始*/ $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadString($innertext); foreach($arr as $key=>$value) { if(is_array($dtp2->CTags)) { foreach($dtp2->CTags as $k=>$ctag) { if($ctag->GetName()=='picarr') { //传递整个数组,在runphp模式中有特殊作用 $dtp2->Assign($k, $value['pic']); } else { if(isset($value[$ctag->GetName()])) $dtp2->Assign($k,$value[$ctag->GetName()]); else $dtp2->Assign($k, ''); } } } $temp_result = $dtp2->GetResult(); $revalue .= $temp_result."\r\n"; } /*这里结束*/ // 为了使用数组 用 /*这里开始*/ 到 /*这里结束*/ 替换下面注掉的部分 // foreach($arr as $key=>$value){ // $rbtext = preg_replace("/\[field:content([\/\s]{0,})\]/isU",$value['content'], $innertext); // $rbtext = preg_replace("/\[field:time([\/\s]{0,})\]/isU",$value['time'], $rbtext); // //$rbtext = preg_replace("/\[field:pic([\/\s]{0,})\]/isU",$value['pic'], $rbtext); // $rbtext = preg_replace("/\[field:zan([\/\s]{0,})\]/isU",$value['zan'], $rbtext); // $rbtext = preg_replace("/\[field:browser([\/\s]{0,})\]/isU",$value['browser'], $rbtext); // $revalue.=$rbtext; // } return $revalue; }