Yahoo's / Google "Meinten Sie?"

Gunah

Erfahrenes Mitglied
moin

ich hab jetzt aus dem Yahoo API REST ein kleinen Script gebastelt, dass die auf meiner eigenen HP läuft... nur kennt ihr zufällig eine Möglichkeit, wie ich dieses "Meinten Sie?" übernehmen kann...?

hier mal der Quellcode... den könnt ihr nutzen verbessern usw, aber nicht als euer eigen ausgeben ;), verbesserungsvorschläge sind auch erwünscht ;)

EDIT:// zum script es ist PHP5 wie auch PHP4 Compatible... (Typo3 fähig ist es auch... siehe bei den Optionen hier im Script... eingefügt werden kann es aber nur mit der Typo3 Extension: page_php_content [MIRROR])

demo findet ihr hier: http://gunah.de/formular.php
PHP:
<?php

/* #### Options #### */
$results='50';					// (int) Wie viel results Pro Seite Angezeigt werden sollen...
$region='de';					// (string 2zeichen) Auswelcher Region zu erst gesucht werden soll...
$appid=''; // (string) Die appID die ihr von Yahoo bekommen habt...
$descs3='50';					// (int) Beschreibung des Such Ergebnisses
$maxsearch='1000';				// (int) Es können über eine normale appID von Yahoo nur max.1000 einträge ausgegeben werden...
$typo3ext='1';						// (int) 1 = ist für Typo3 / 0 = ist nicht für Typo3
/* #### Options End #### */

if(empty($results))   $results  ='50';
if(empty($region))    $region   ='us';
if(empty($appid))     $appid    ='Yahoo.Demo';
if(empty($descs3))    $descs3   ='20';
if(empty($maxsearch)) $maxsearch='50';
/**
 * htmlconverter
 *
 * @param   string   $string         A Normal Text String
 * @return  string                   Exports a ISO-8859-15 HTML Text (eg. ö ä ü = &ouml; &auml; &uuml;)
 */
function htmlconverter($string) {
return htmlentities($string,ENT_QUOTES,'ISO-8859-15');
}
/**
 * utf8_to_normal
 *
 * @param   string   $insert         UTF-8 Text
 * @return  string                   Export a String in Normaltext (from UTF8 to ISO-8859-1 [without htmlentities])
 */
function utf8_to_normal ($insert) {
if(!function_exists('iconv')) return html_entity_decode(utf8_decode($insert));
else return html_entity_decode(iconv("UTF-8", "ISO-8859-1", $insert));
}
/**
 * phpfile
 *
 * @return  string                   Export The PHP File name
 */
function phpfile () {
return basename($_SERVER['PHP_SELF']);
}


if(!empty($_GET['q'])) $search=$_GET['q'];
else $search='';
if(!empty($_GET['page'])) $page=intval($_GET['page']);
else $page=intval('1');

define("LF",chr(10)); // Ersetz die Variable chr(10) zu einem Unix-Zeilenumbruch...
/* Suche Formular */
echo '<form method="get" action="'.basename($_SERVER['PHP_SELF']).'">';
if($typo3ext=='1') echo '<input type="hidden" name="id" value="'.intval($_REQUEST['id']).'" />';
echo '<input type="text" name="q" value="'.htmlconverter($_GET['q']).'"/>
  <input type="submit" value="suche">
</form>';
/* Suche Formular Ende */

$start = $page * $results - $results; // errechnet welches die momentane Seite ist...
if(empty($start) || $start=='0') $start='1'; // sollte kein Startpunkt durch das errechnen vorhanden sein, wird einer gesetzt...

/* Prüft ob die Seitenzahl ($page) eine Zahl ist... */
if(!is_int($page)) {
echo '<div>Es ist ein unerwarteter Fehler aufgetreten.</div>';
exit;
}
// Sollte bis hier hin kein Fehler aufgetreten sein, wird angefangen die Suche zu berechnen...
if(!empty($search)) {
$request='http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid='.urlencode($appid).'&query='.urlencode($search).'&output=php&region='.urlencode($region).'&results='.urlencode(intval($results)).'&start='.intval($start).'';
$response = @file_get_contents($request);

/* Überprüft, ob eine Verbindung mit Yahoo auf genommen werden kann */
if ($response === false && !empty($search)) {
	echo ('<div>Die Suche konnte auf Grund technischer St&ouml;rungen nicht ausgef&uuml;hrt werden.</div>');
	exit;
}
$phpobj = unserialize($response); // Konvertiert den serializePHP-Code zu einem PHP-Array();

/*
Demo des Arrays (Such Begriff: php):

Array
(
    [ResultSet] => Array
        (
            [type] => web
            [totalResultsAvailable] => 956000000
            [totalResultsReturned] => 5
            [firstResultPosition] => 1
            [moreSearch] => /WebSearchService/V1/webSearch?query=php&appid=ENTFERNT&region=de
            [Result] => Array
                (
                    [0] => Array
                        (
                            [Title] => PHP - Wikipedia
                            [Summary] => PHP ist Open-Source-Software. PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite ... PHP wurde 1995 von Rasmus Lerdorf entwickelt. ...
                            [Url] => http://de.wikipedia.org/wiki/PHP
                            [ClickUrl] => http://uk.wrs.yahoo.com/_ylt=A9iby4utHPpGyyYA5AazCQx.;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11k6j0e13/EXP=1190882861/**http%3A//de.wikipedia.org/wiki/PHP
                            [DisplayUrl] => de.wikipedia.org/wiki/PHP
                            [ModificationDate] => 1186729200
                            [MimeType] => text/html
                            [Cache] => Array
                                (
                                    [Url] => http://uk.wrs.yahoo.com/_ylt=A9iby4utHPpGyyYA5gazCQx.;_ylu=X3oDMTBwZTdwbWtkBGNvbG8DZQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=1720ngh75/EXP=1190882861/**http%3A//72.30.186.56/search/cache%3Fei=UTF-8%26appid=[HIER_STEHT_DIE_APPID]%26query=php%26output=php%26region=de%26results=5%26start=1%26u=de.wikipedia.org/wiki/PHP%26w=php%26d=LXoV6-dmPccW%26icp=1%26.intl=de
                                    [Size] => 72264
                                )
                        )
                )
        )
)

*/
$yahoophp=$phpobj['ResultSet']; //gibt die wichtigen Informationen für Die suche Preis...

/* Da man bei Yahoo nicht mehr als 1000 Seiten über die REST schnittstelle nutzen darf, wird dieses hier geprüft */
if($yahoophp['totalResultsAvailable']>=$maxsearch) $yahoo['totalresults']=$maxsearch;
else $yahoo['totalresults']=$yahoophp['totalResultsAvailable'];

/* Gibt aus WieViele Eintäge gefunden wurden */
if(intval($yahoo['totalresults'])=='0') $yahoo['sites']='0';
else $yahoo['sites']=ceil($yahoo['totalresults']/$results);
if($yahoo['totalresults']=='1') echo '<div>Es wurden insgesammt '.intval($yahoo['totalresults']).' Eintrag gefunden, dass ist '.intval($yahoo['sites']).' Seite.</div>'.chr(10);
elseif($yahoo['sites']=='1') echo '<div>Es wurden insgesammt '.intval($yahoo['totalresults']).' Eintr&auml;ge gefunden, dass ist '.intval($yahoo['sites']).' Seite.</div>'.chr(10);
else echo '<div>Es wurden insgesammt '.intval($yahoo['totalresults']).' Eintr&auml;ge gefunden, dass sind '.intval($yahoo['sites']).' Seiten.</div>'.chr(10);
echo '<ul>'.chr(10);
// Gibt die Suchergebnisse aus...
foreach($phpobj['ResultSet']['Result'] as $export) {
$title=$export['Title'];
$url=$export['Url'];
$displayurl=$export['DisplayUrl'];
$desc=substr($export['Summary'],'0',$descs3).'...';
echo '<li><b><a href="'.utf8_to_normal($url).'">'.utf8_to_normal($title).'</a></b><br /><i>'.utf8_to_normal($desc).'</i><br />'.utf8_to_normal($displayurl).'</li>';
echo chr(10);
}
echo '</ul>'.chr(10);

////////
if($yahoo['sites']!='0') {// Prüft ob Überhaubt Seiten vorhanden sind...
echo "<div><b>Seite:</b></div>";
/// hier werden die Seiten ausgeben...
// Erste (wird nur angezeigt wenn er nicht auf Seite 1 ist)
if($typo3ext=='1') $typo3ext_page='&amp;id='.intval($_REQUEST['id']); // wenn es für Typo3 wird die ID der Seite hinzugefügt
if($page!='1') echo '<a href="'.phpfile().'?page='.intval('1').'&amp;q='.urlencode($search).$typo3ext_page.'">&laquo; Erste Seite</a> | '.chr(10); 
for($a=0; $a < $yahoo['sites']; $a++) {
   $b = $a + 1;
   // Zurück Button wird nur gezeigt, sobald man nicht mehr auf Page 1 ist
   if($b=='1' && $page!=$b) echo '<a href="'.phpfile().'?page='.intval($page-1).'&amp;q='.urlencode($search).$typo3ext_page.'">&laquo; Zur&uuml;ck</a> | '.chr(10); 
   if($page==$b) echo "  <b>$b</b> "; // Aktuelle Seite
   			   // Seite alle anderen Seiten
    else echo '  <a href="'.phpfile().'?page='.intval($b).'&amp;q='.urlencode($search).$typo3ext_page.'">'.intval($b).'</a> '.chr(10);
   }
   // weiter, wird angezeigt, wenn man nicht auf der letzten Seite ist
   if($page!=$yahoo['sites']) echo ' | <a href="'.phpfile().'?page='.intval($page+1).'&amp;q='.urlencode($search).$typo3ext_page.'">&raquo; Weiter</a>'.chr(10);
   // Letzte Seite, wird angezeigt, wenn es nicht auf der letzten ist...
   if($page!=$yahoo['sites']) echo ' | <a href="'.phpfile().'?page='.intval($yahoo['sites']).'&amp;q='.urlencode($search).$typo3ext_page.'">&raquo; Letzte Seite</a>'.chr(10);
   }
  }
?>
MfG Gunah
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück