From c253d9bebf7f6f2f293cd9bd907a5704c5a1d569 Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Wed, 6 Jul 2016 14:27:21 +0200 Subject: [PATCH] =?UTF-8?q?Exalead=20Parser=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/parserSkripte/Exalead.php | 62 ++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/app/Models/parserSkripte/Exalead.php b/app/Models/parserSkripte/Exalead.php index 66c34fc5a..e0d9ed0db 100644 --- a/app/Models/parserSkripte/Exalead.php +++ b/app/Models/parserSkripte/Exalead.php @@ -2,6 +2,7 @@ namespace app\Models\parserSkripte; use App\Models\Searchengine; +use Log; class Exalead extends Searchengine { @@ -14,22 +15,49 @@ class Exalead extends Searchengine public function loadResults ($result) { + $result = preg_replace("/\r\n/si", "", $result); + try { + $content = simplexml_load_string($result); + } catch (\Exception $e) { + abort(500, "$result is not a valid xml string"); + } - $title = ""; - $link = ""; - $anzeigeLink = $link; - $descr = ""; - - #die($result); - - /*$this->counter++; - $this->results[] = new \App\Models\Result( - $title, - $link, - $anzeigeLink, - $descr, - $this->gefVon, - $this->counter - ); */ + if(!$content) + { + return; + } + $results = $content; + $prefix = ""; $namespace = ""; + foreach($results->getDocNamespaces() as $strPrefix => $strNamespace) { + if(strlen($strPrefix)==0) { + $prefix="a"; //Assign an arbitrary namespace prefix. + }else { + $prefix="a"; + } + $namespace = $strNamespace; + } + $results->registerXPathNamespace($prefix,$namespace); + $results = $results->xpath("//a:hits/a:Hit"); + foreach($results as $result) + { + $result->registerXPathNamespace($prefix,$namespace); + $title = $result->xpath("a:metas/a:Meta[@name='title']/a:MetaString[@name='value']")[0]->__toString(); + $link = $result->xpath("a:metas/a:Meta[@name='url']/a:MetaString[@name='value']")[0]->__toString(); + $anzeigeLink = $link; + if(sizeOf($result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")) === 0) + $descr = ""; + else + $descr = $result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")[0]->__toString(); + $this->counter++; + $this->results[] = new \App\Models\Result( + $this->engine, + $title, + $link, + $anzeigeLink, + $descr, + $this->gefVon, + $this->counter + ); + } } -} \ No newline at end of file +} -- GitLab