_request->getParam('title'); $filePath="http://wiki.westgis.ac.cn/api.php?format=php&action=query&prop=revisions&titles=$title&rvprop=content&redirects"; $wikifp=fopen($filePath,'r'); while (!feof($wikifp)) { $wikiLines=fgets($wikifp); $yuchuli=array('";}}}}}}','**','*'); $chulihou=array('',' ·','·'); $wikiLine=str_replace($yuchuli,$chulihou,$wikiLines); if(substr($wikiLine,0,2)=='a:') { if(strpos($wikiLine,'==')!== false){ $wikititle=mb_strstr($wikiLine,'==',false); $this->wikitransform($wikititle,$content); } }else { $this->wikitransform($wikiLine,$content); } } /*$wikicontent=unserialize(file_get_contents($filePath)); $wiki_keys=array_keys($wikicontent['query']['pages']); $content= $wikicontent['query']['pages'][$wiki_keys[0]]; $this->view->title=$content['title']; $c1=explode('\n',$content['revisions'][0]['*']); foreach ($c1 as $c2) $this->wikitransform($c2,$tcontent);*/ $this->view->content=$content; $this->view->config = Zend_Registry::get('config'); } //transform mediawiki text to local text function wikitransform($text,&$result) { if(strpos($text,'=====')!== false&&substr($text,0,1)=='=') { $wikiFont=str_replace('=====','',$text); $result.="
'.str_replace($a,$c,$text).'
'; }elseif(strpos($text,'[http://')!== false||strpos($text,'[ http://')!== false){ $a=array('[',']'); $b=array('',''); $test=str_replace($a,$b,$text); preg_match_all("|<[^>]+>(.*)[^>]+>|U",$test,$out,PREG_PATTERN_ORDER); $name=$out[1][0];//还有问题,测试遇到再解决! $href=''; $value=mb_strstr($name,' ',false).''; $result.=str_replace($name,$href.$value,$test); }elseif(strpos($text,'{|')!== false) { $wikitable=str_replace("{|",'',' | ';
}
}elseif(strpos($text,'|+ ')!== false) {
$wikitr=str_replace('|+ ',' | ';
}elseif(strpos($text,'!!')!== false||substr($text,0,1)=='!') {
$thh=str_replace("!!",'',$text); $wikith=str_replace('!',' | ',$thh); $result.= $wikith.' | '; }elseif(strpos($text,'||')!== false||substr($text,0,1)=='|'&&substr($text,0,2)!=='||'&&substr($text,0,2)!=='|+'&&substr($text,0,2)!=='|-'&&substr($text,0,2)!=='|}') { $tdd=str_replace('||','',$text); $wikitd=str_replace('|',' | ',$tdd); $result.= $wikitd.' | '; }elseif(substr($text,0,2)=='|-') { $wikitrr=str_replace('|-','
---|
$text
"; } } }