this will be much faster than over www $searchurl = $url; //$searchurl.="Special:Search?search=".urlencode($term)."&fulltext=Search&limit=".$maxresults."&offset=0";//OLD Version - now new mediwiki API is used $searchurl.="/api.php?action=query&list=search&srsearch=".urlencode($term)."&srwhat=text&format=xml"; $e = new mb_notice("gaz_wiki: url to load: ".$searchurl); //load result by connector: $wikiConnectorObject = new connector($searchurl); $e = new mb_notice("gaz_wiki: read from connector".$wikiConnectorObject->file); //get results $wikiXmlString = $wikiConnectorObject->file; //load as xml object $wikiXmlObject = new SimpleXMLElement($wikiXmlString); $e = new mb_notice("gaz_wiki: xml after parsing with php simplexml: ".$wikiXmlObject->asXML()); //get the list of results $lists = $wikiXmlObject->xpath('/api/query/search/p/@title'); $e = new mb_notice("gaz_wiki: number of results: ".count($lists)); //debug //while(list( , $node) = each($lists)) { // $e = new mb_exception('/api/query/search/p/@title: '.$node); //} //create output xml $xml = new DOMDocument('1.0'); $xml->encoding = CHARSET; $resultnode = $xml->createElement("result"); $xml->appendChild($resultnode); if(count($lists)==0) {//no results returned $ready = $xml->createElement('ready'); $resultnode->appendChild($ready); $tready = $xml->createTextNode("true"); $ready->appendChild($tready); echo $xml->saveXML(); } else { //parse title matches while(list( , $node) = each($lists)) { $e = new mb_notice('/api/query/search/p/@title: '.$node); $link = $surl.$node; $title = $node; $m = $xml->createElement('member'); $resultnode->appendChild($m); //create title $ntitle = $xml->createElement('title'); $m->appendChild($ntitle); $ttitle = $xml->createTextNode($title); $ntitle->appendChild($ttitle); //abstract $abst = $xml->createElement('abstract'); $m->appendChild($abst); $tabst = $xml->createTextNode(""); $abst->appendChild($tabst); //url $nurl = $xml->createElement('url'); $m->appendChild($nurl); $turl = $xml->createTextNode($link); $nurl->appendChild($turl); } $ready = $xml->createElement('ready'); $resultnode->appendChild($ready); $tready = $xml->createTextNode("true"); $ready->appendChild($tready); echo $xml->saveXML(); } ?>