Anzeige - [Hier werben]
(?) Tags raten (?) apis, google, google api, php script (edit)
Seiten: (3) 1 [2] 3  ( Neuster Beitrag anzeigen )
Reply to this topicStart new topicStart Poll
Diskussion

Google API PHP-Script


Geschrieben am: So 9.10.2005, 20:34
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


QUOTE
Woran liegt das?

Ja nach Deinem Feindbild ist der Verursacher bei den Amerikanern, Russen oder Chinesen zu suchen...

Was zeigt folgender Code an?

CODE
  echo "<pre>";
var_dump( $result );
echo "</pre>";
Top
PMEmail PosterUsers Website
Top
 
 
Franziska
#22 Geschrieben am: So 9.10.2005, 20:40 (+00:05)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Folgendes:
CODE
array(11) {
 ["directoryCategories"]=>
 string(1) "
"
 ["documentFiltering"]=>
 string(5) "false"
 ["endIndex"]=>
 int(0)
 ["estimateIsExact"]=>
 string(5) "false"
 ["estimatedTotalResultsCount"]=>
 int(0)
 ["resultElements"]=>
 string(1) "
"
 ["searchComments"]=>
 string(0) ""
 ["searchQuery"]=>
 string(19) "site:gac-portal.de "
 ["searchTime"]=>
 float(0.06737)
 ["searchTips"]=>
 string(0) ""
 ["startIndex"]=>
 int(0)
}


Wenn ich das Formular ausfülle findet er ebenfalls passende Einträge in der Form.
Top
PMEmail Poster
Top
 

#23 Geschrieben am: So 9.10.2005, 20:54 (+00:14)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Das ist eine Erlärung für die leere Seite....

CODE
 ["estimatedTotalResultsCount"]=>
int(0)


Wenn es keine Ergebnisse gibt, kann er auch nichts anzeigen...

Du musst das also überprüfen, z.B.

CODE

....
$total = $result["return"]["estimatedTotalResultsCount"];

if ($total<=0) { // keine Resultate
echo "Leider nix da...";

}


for ($i = 1; $i <= $parameters["maxResults"]; $i++)
{
$element =....
Top
PMEmail PosterUsers Website
Top
 
Franziska
#24 Geschrieben am: So 9.10.2005, 21:00 (+00:05)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Ehm.. Du meinst für einen eingegeben Wert bspw. "Team Berlin" gibt es keine Eintragungen bei Google? Das ist ja nicht wahr..

Auszug aus der Suche mit deinem gegeben Code:
QUOTE
array(11) {
  ["directoryCategories"]=>
  string(1) "
"
  ["documentFiltering"]=>
  string(5) "false"
  ["endIndex"]=>
  int(10)
  ["estimateIsExact"]=>
  string(5) "false"
  ["estimatedTotalResultsCount"]=>
  int(149)
  ["resultElements"]=>
  array(10) {
    [0]=>
    array(9) {
      ["URL"]=>
      string(59) "http://www.gac-portal.de/forum/archive/index.php/t-759.html"
      ["cachedSize"]=>
      string(2) "5k"
      ["directoryCategory"]=>
      array(2) {
        ["fullViewableName"]=>
        string(0) ""
        ["specialEncoding"]=>
        string(0) ""
      }
      ["directoryTitle"]=>
      string(0) ""
      ["hostName"]=>
      string(0) ""
      ["relatedInformationPresent"]=>
      string(4) "true"
      ["snippet"]=>
      string(185) "[Archiv] Swat Team Berlin Team-Vorstellung. ... VollstÃ&curren;ndige Version anzeigen :
  Swat Team Berlin. Dswjust. 08.04.2005, 19:52 . ..."
      ["summary"]=>
      string(0) ""
      ["title"]=>
      string(51) "Swat Team Berlin [Archiv] - GAC-Forum"
    }
Top
PMEmail Poster
Top
 
Franziska
#25 Geschrieben am: Mo 10.10.2005, 09:46 (+12:46)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Danke für die Hilfe erstmal. Neuer Tag, neues Glück..

Wenn ich eine Suchanfrage mit dem Formular mache und auf der search.php lande, dann wird in der ersten Zeile "Leider nix da.." angezeigt. Allerdings sieht man durch das
CODE
 echo "<pre>";
var_dump( $result );
echo "</pre>";
, dass es schon Ergebnisse gibt? S.o.

Tut mir Leid für solche Fragen, aber ich verstehe es wirklich nicht.
Top
PMEmail Poster
Top
 

#26 Geschrieben am: Mo 10.10.2005, 11:37 (+01:50)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Aha. Der Penner, der das Script in die FAQ gestellt hat, hat Sch.. gebaut... Das Script enthielt Fehler.

Wenn Du den var_dump von $result betrachtest, fälllt Dir auf:
$results ist ein Array
Es hat 11 Einträge
$result["result"]["estimatedTotalResultsCount"] existiert nach var_dump nicht
$result["estimatedTotalResultsCount"] existiert.
=>
CODE
[...]
$searchtime = $result["searchTime"];
$begin = $start + 1;
$end = $start + $parameters["maxResults"];
$total = $result["estimatedTotalResultsCount"];


for ($i = 1; $i <= $parameters["maxResults"]; $i++)
{
$element = $result["resultElements"][$i];
$url = $element["URL"];
[...]


Ebenso fehlt searchTime in dem Array, aber so sollte es laufen.
Top
PMEmail PosterUsers Website
Top
 
Franziska
  #27 Geschrieben am: Mo 10.10.2005, 12:30 (+00:53)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Ja, da hast du Recht.

Klappt jetzt auch.

Lieben Dank smile.gif


Bearbeitet von blue am Do 13.10.2005, 10:35
Top
PMEmail Poster
Top
 
Franziska
#28 Geschrieben am: Do 13.10.2005, 10:37 (+2d 22:06)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Nun habe ich doch noch zwei Probleme. gna..

Zum einen, wenn ich in das Formular ein Wort mit Umlaut angebe, kommt wieder das altbekannte Problem, dass auf der Seite keine Ergebnisse angezeigt werden. Dabei ist Unicode UTF-8 gesetzt.

Ein anderes Problem erweist sich mit der Ausgabe. Derzeit werden 9 Ergebnisse ausgegeben. Ich möchte aber, dass alle Ergebnisse ausgegeben werden. So dachte ich mir, setze ich einfach das naheliegende "maxResults" hoch.. Ergebnis war wieder eine leere Seite mit leeren Link-Tags.

huh.gif
Top
PMEmail Poster
Top
 
Franziska
#29 Geschrieben am: So 16.10.2005, 11:14 (+3d 00:36)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Ich überlege jetzt ja schon ein paar Tage darüber, aber ich komme nicht darauf..

Ich meine in dem hier gegeben Script wird ja UTF-8 gesetzt, muss ich das jetzt im Formular nochmal einbringen? Wie? Mit einem Hidden-Input? Aber wie sollte der dann aussehen.

Das seltsame ist ja wieder, dass es nur diese leere Seite mit den leeren Links gibt.

So sieht das Formular aus:
CODE
<FORM method="POST" action="index.php?section=search">
<INPUT TYPE="text" name="q" size="10" maxlength="255" value="">
<INPUT type="submit" VALUE="suche">
</FORM>


Und so das Script (mit der Ausschließung des doppelten Inhalts):
CODE
require_once("nusoap.php");

$key = "Mein Google-Key";
$start = 0;

$query = $_POST['q'];


$soapclient = new soapclient("http://api.google.com/search/beta2"); // [1]

$parameters = array(
   "key"         => $key,
   "q"           => "site:gac-portal.de $query",
   "start"       => $start,
   "maxResults"  => 10,
   "filter"      => false,
   "restrict"    => "",
   "safeSearch"  => false,
   "lr"          => "lang_de",
   "ie"          => "UTF-8",
   "oe"          => "UTF-8"
 );
$result = $soapclient->call("doGoogleSearch", $parameters, "urn:GoogleSearch");
$searchtime = $result["searchTime"];
$begin = $start + 1;
$end = $start + $parameters["maxResults"];
$total = $result["estimatedTotalResultsCount"];


for ($i = 1; $i <= $parameters["maxResults"]; $i++)
{
$element = $result["resultElements"][$i];
   $url = $element["URL"];
  $title = $element["title"];
  $snippet = $element["snippet"]; // [2]

$search = array('ö','ü','ä');
$replace = array('ö','ü','ä');
$title = str_replace($search, $replace, $title);
$snippet = str_replace($search, $replace, $snippet);
   
//dublicate content:
 if ( (!$known[$url] and !$known[$title]) ) {
  $known[$title] = true;
  $known[$url]   = true;
 
 
  if ($title != "\n" && $url != "\n") {
 
   echo utf8_decode(str_replace("{url}", $url,
        str_replace("{snippet}",
         str_replace("<br>", "", $snippet),
          str_replace("{title}", $title, "")
         )
         )
       );
 
  }
 }

echo "<a href=$url><b>$title</a></b><br/>$snippet<br/><a href=$url>$url</a><br/><br/>";
 }



Kurzfassung der Problemstellung:
1. Suche mit Umlauten ergibt weiße Seite mit leeren Links.
2. Ich möchte alle Ergebnisse anzeigen lassen, wie?
Top
PMEmail Poster
Top
 

#30 Geschrieben am: Di 25.10.2005, 18:39 (+9d 07:25)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Diesmal war ich etwas langsamer.

Deine Probleme sind mit einfachem PHP lösbar. Das müsstest Du aber anwenden:

Wegen den Umlauten: Machs Dir doch einfach. Ersetzte in der Query (bevor Du sie an die Api gibtst) mit str_replace alle Umlaute durch Doppellaute (?gibts das Wort), also ä mit ae, ü mit ue, ... Genau wie Du es gemacht hast, einfach in dem Parameter ($query) und nicht erst im Resultat.

Wenn Du mehr als 10 Resultate pro Seite anzeigen willst, gibt es mehrere Möglichkeiten. (Ich warne aber vor der Langsamkeit, die schon 3 Anfragen nach sich ziehen!) Ich versuche es mit der in meinen Augen einfachsten:
Mit einer Schlaufe. Zb. for:
for ($res = 1; $res<=3; $res=$res+1) { *** }

Die *** ersetzt Du durch Deinen bisherigen Code ab der SOAP Anfrage ($soapclient->call), wobei Du noch den den Start im Parameter Array verändern musst ($parameters['start'] = (int) $res."0";).

Weitere Infos gibts bei http://www.php.net. Einfach z.B. "for" ins Suchfeld eintippen und ab gehts.

Verstanden?
Top
PMEmail PosterUsers Website
Top
 
Franziska
#31 Geschrieben am: Do 3.11.2005, 18:19 (+8d 23:39)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Hi Alain, danke erstmal für die Antwort.

Leider ergeben sich da noch einige Probleme.

Das mit den Umlauten funktioniert trotzdem noch nicht, auch wenn ich das str_replace in der query mache:
CODE

$query1 = $_POST['q'];

$search = array('ö','ü','ä');
$replace = array('ö','ü','ä');
$query = str_replace($search, $replace, $query1);


Ebenfalls funktioniert das mit der Anzeige nicht. Ich will ja im Grunde nicht mehr als 10 Beiträge anzeigen lassen, es soll ja dann eigentlich mit einer Blätterfunktion weiter gehen. Allerdings funktioniert die Lösung, die du gegeben hast, auch nicht. Es führt zu einer leeren Seite (Der Quellcode zeigt die bekannten "leeren" Links)..


Danke für deine Hilfe!
Top
PMEmail Poster
Top
 

#32 Geschrieben am: Do 3.11.2005, 20:01 (+01:41)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Nochmal:

QUOTE
Machs Dir doch einfach. Ersetzte in der Query (bevor Du sie an die Api gibtst) mit str_replace alle Umlaute durch Doppellaute (?gibts das Wort), also ä mit ae, ü mit ue, ...

Verstehst Du was str_replace macht?
Top
PMEmail PosterUsers Website
Top
 
Franziska
#33 Geschrieben am: Do 3.11.2005, 20:13 (+00:11)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Guten Abend,

habe das irgendwie nicht ganz mitgekriegt mit den Umlauten, vermutlich nicht vernünftig gelesen. Danke, geht jetzt.

Das zweite Problem besteht immernoch. Er findet zwar quasi die Einträge, jedoch zeigt er sie nur mit leeren Links an.. (wie oben beschrieben).
Top
PMEmail Poster
Top
 

#34 Geschrieben am: Do 3.11.2005, 20:48 (+00:35)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


QUOTE
Derzeit werden 9 Ergebnisse ausgegeben. Ich möchte aber, dass alle Ergebnisse ausgegeben werden.


Also halt nochmal. Bitte genauer in Zukunft und etwas mehr Eigeninitiative.

Du hast also
QUOTE
$start = 0;

Was wenn da steht
QUOTE
$start = $_REQUEST['start'];

Weisst Du was das bedeutet?
Ändere $_POST in $_REQUEST.
Dann kannst Du mit $total die Anzahl der Unterseiten bestimmen und so a la
QUOTE
for () {
echo "<a href='deinedatei.php?query=$query&start=$i>[$i]</a> ";
}

ausgeben

Alles klar?
Top
PMEmail PosterUsers Website
Top
 
Franziska
#35 Geschrieben am: Sa 5.11.2005, 07:16 (+34:27)
Report PostQuote Post

AyomRank 3
******

Gruppe: Member (aktiv)
Beiträge: 25
Mitglied seit: 9.10.2005


Tut mir Leid, ich komme damit irgendwie nicht wirklich klar..

Also, anstatt
CODE
$start = 0;

soll jetzt
QUOTE
$start = $_REQUEST['start'];

stehen?

Woher kommt denn das ['start']?
Wenn ich das so mache, gibt es keine Resultate mehr.

Und dann muss ich nur noch unten eine for-Schleife einbauen, damit diese Blätterfunktion funktioniert? Selbst damit habe ich irgendwie ein Problem.
Eigentlich sieht ja eine for-Schleife folgendermaßen aus: for(Startwert, Bedingung, Zähler) { }
Aber ich komm damit nicht klar..
Top
PMEmail Poster
Top
2 Monate später...
Gast
#36 Geschrieben am: Di 17.01.2006, 10:44 (+2m )
Report PostQuote Post

Unregistered







Hallo,

auch wenn das Thema schon älter ist, hoffe ich, dass mir trotzdem jemand weiterhelfen kann. Ich hab das obige Script verwendet, bekomm aber immer die Fehlermeldung Fatal error: Cannot redeclare class soapclient in D:\xampp\xampp\htdocs\soap\nusoap.php on line 4096

Woran könnte das liegen? Ich verwende Xampp 1.5.1 (also PHP 5.1.1)

Vielen Dank im Voraus

Johannes
Top
Top
 

#37 Geschrieben am: Di 17.01.2006, 18:51 (+08:06)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5270
Mitglied seit: 25.09.2003


Hilf Dir selbst, dann hilft Dir Gott bzw. Allah, oder wie sie alle heissen:
http://www.google.de/search?q=Fatal+error%...lla:de:official

Ausserdem wäre es von Vorteil, wenn Du Dir entsprechende Zeile 4096 angeschaut hättest.
Top
PMEmail PosterUsers Website
Top
 
Gast
#38 Geschrieben am: Mi 18.01.2006, 14:52 (+20:01)
Report PostQuote Post

Unregistered







Und inwiefern soll mir das weiterhelfen? Was der Fehler bedeutet, war mir auch klar. Nur war ich der Meinung, dass der Fehler sicher nicht in der nusoap.php liegt. Die Zeile 4096 ist übrigens das Ende der Datei.

Ich wollte nur wissen, ob noch jemand Probleme mit nusoap.php und eurem Skript in Verbindung mit Xampp hatte...

Egal, hab jetzt den Apache 1.3 installiert und da läufts problemlos
Top
Top
 
Ansgar Berhorn
TOPdesk Deutschland
#39 Geschrieben am: Mi 18.01.2006, 18:14 (+03:21)
Report PostQuote Post

AyomRank 6
************

Gruppe: Ehrenmitglied, Ex-Moderator
Beiträge: 857
Mitglied seit: 8.10.2004


QUOTE
Und inwiefern soll mir das weiterhelfen? Was der Fehler bedeutet, war mir auch klar. Nur war ich der Meinung, dass der Fehler sicher nicht in der nusoap.php liegt. Die Zeile 4096 ist übrigens das Ende der Datei.

Hier steht die Antwort:
http://www.php-faq.de/q/q-fehler-class-redeclare.html
Das ist der erste Link aus Alains Suche.

Du hast den Code vermutlich direkt in die Beispiel-Quellen von xampp reingesetzt.
Hättest du die überflüssige include-Anweisung entfernt, hätte alles funktioniert.
Das ist kein Problem der xampp-Umgebung.



--------------------
Top
PMUsers Website
Top
1 Jahr und 2 Monate später...
Gast
#40 Geschrieben am: Mo 12.03.2007, 20:51 (+1y 2m )
Report PostQuote Post

Unregistered







Hallo zusammen

wollte mal nachfragen wie denn der aktuelle Stand ist, da die Scripte hier scheinbar nicht mehr funktionieren.

Gibts noch eine Möglichkeit die Ergebnisse von Google in ähnlicher Form zu bekommen?
Also so das man damit arbeiten kann, sprich neu sortieren oder so?

Habe bissle im Web gesucht, bin aber neu in dem Thema und habe daher nicht viel rausgefunden.
Würde mich mitm Link auch zufrieden geben falls den einer postet :-)

Die Hilfe Seite der Google API ist mir irgendwie zu kompliziert *g*
Top
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:

Topic Options Seiten: (3) 1 [2] 3  Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Produkte via Facebook, Google+ und Twitter anbiete lukas1 374 5 Mi 16.04.2014, 15:56
Was haltet Ihr vom neuen Google Chrome OS Goodbuys 2662 14 Mi 2.04.2014, 10:05
Google Adsense / Welcher Auftraggeber Ireland/USA? maria123 357 3 Fr 28.03.2014, 18:33
Designer für Press Release Script saschag60 330 0 Mi 19.03.2014, 00:05
JQuery Carousel Galerie Script gesucht Roberto 520 2 Mi 5.03.2014, 13:27
Verkaufe Socialmediavermarkter Script rabattfuchser 297 0 Mo 3.03.2014, 13:01
Google Hacking mal anders... Alain Aubert 655 4 Mi 19.02.2014, 16:00
Google Places - Falsche Daten Flash 1779 8 Di 18.02.2014, 18:04
Altersverifikation / Altersüberprüfung Script kautz10 535 1 Di 18.02.2014, 17:26
Google+ richtig nutzen? Ronny84 1547 10 Fr 14.02.2014, 12:11


Günstig werben auf Ayom:
Kontakt: ayom@small-n-tall.com



Anzeigen

Textlinks kaufen oder anbieten



[Hier werben]

 

Statistiken:
Top 10 Autoren heute
Top 50 Autoren insgesamt