예제 #1
0
 protected function getResults(SearchQuery $query)
 {
     $i = 0;
     $params = $query->getParameters();
     $xmlReq = "<Query xmlns='exa:com.exalead.search.v10'><args>";
     foreach ($params as $param) {
         $name = $param->getName();
         $value = $param->getValue();
         $xmlReq .= "<Arg xmlns='exa:com.exalead.xmlapplication' name='" . $name . "' value='" . htmlspecialchars(stripslashes($value), ENT_QUOTES, 'UTF-8') . "'/>";
     }
     $xmlReq .= "</args></Query>";
     //        echo str_replace("<", "&lt;", $xmlReq);
     $ch = curl_init($this->url);
     curl_setopt_array($ch, array(CURLOPT_HTTPHEADER => array('Content-type: text/xml'), CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $xmlReq));
     if (($result = curl_exec($ch)) !== false && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
         $this->xmlResponse = str_replace("xmlns=", "ns=", $result);
         echo str_replace("<", "&lt;", $this->xmlResponse);
     } else {
         throw new SearchClientException('Error: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . "\n" . curl_error($ch));
     }
     curl_close($ch);
 }