Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]PHPgoogleSearch
Forum PHP.pl > Forum > Przedszkole
Mike122
Witam, posiadam skrypt PHPgoogleSearch konfiguracja jest zrobiona prawdopodobnie poprawnie posiadam także GOOGLE API KEY LICENSE lecz wyświetla się następujący błąd:
Fatal error: Method SOAP_Client::__call() must take exactly 2 arguments in \httpd-users\httpd\srv\PHPgoogleSearch\SOAP\Client.php on line 335
W linji 335 znajduje się znak: }
Serwer posiada PHP5

Co robić? Prosze o pomoc.
erix
Cytat
Fatal error: Method SOAP_Client::__call() must take exactly 2 arguments in \httpd-users\httpd\srv\PHPgoogleSearch\SOAP\Client.php on line 335

Przeczytaj uważnie to podkreślone.

edit: ups, nie to ;P
dr_bonzo
Tylko ze on wywolania __call() w kodzie nie znajdzie smile.gif

Mike122: pokaz wiecej kodu wokol tej linijki
Mike122
must take exactly 2 arguments = musisz zdobyć dokładnie 2 argumenty? sadsmiley02.gif Nie rozumię o co chodzi, proszę o pomoc.

Oto kawałek kodu:
  1. <?php
  2. function __call($method, $args, &$return_value)
  3. {
  4. if ($this->wsdl) $this->wsdl->matchMethod($method);
  5. $return_value = $this->call($method, $args);
  6. return TRUE;
  7. }
  8.  
  9. }
  10.  
  11. if (extension_loaded('overload')) {
  12. overload('SOAP_Client');
  13. }
  14. ?>

Cały skrypt jest do pobrania niżej:
LINK

Czy poza tym key'em do google i serverem z php coś jeszcze ten skrypt potrzebuje? Bo siedze nad nim i nic nie moge wymyśleć...
UDAT
Funkcja __call w PHP5 przyjmuje dwa argumenty ty masz 3, zmień na:
  1. <?php
  2. function __call($method, $args ) {
  3. ?>
hwao
Skrypt wyglada na napisany dla php4, gdyz tam bylo rozszerzenie dodajacy magiczna metode __call które miało właśnie takie api. Myśle że skrypt powinnien działać na PHP4 a nie 5. smile.gif

Albo po prostu zrob aby te __call było kompatybilne
UDAT
Cytat
Skrypt wyglada na napisany dla php4, gdyz tam bylo rozszerzenie dodajacy magiczna metode __call które miało właśnie takie api. Myśle że skrypt powinnien działać na PHP4 a nie 5.


Nie pomyślałem. Jednak wygląda to na uruchomienie pod PHP5 i tak zadeklarowaną funkcję __call.
hwao
Zrób poprostu tak
  1. <?php
  2. function __call($method, $args)
  3. {
  4. if ($this->wsdl) $this->wsdl->matchMethod($method);
  5. $return_value = $this->call($method, $args);
  6. return TRUE;
  7. }
  8.  
  9. }
  10. ?>

Powinno działać
Mike122
Dzięki za HELP, choć błędu nie ma ale nic nie wyszukuje teraz pisze tylko np. Results to of about for google.pl ( seconds )
hwao
Hm, chyba wiem juz co :-) Zrób tak

  1. <?php
  2. function __call($method, $args)
  3. {
  4. if ($this->wsdl) $this->wsdl->matchMethod($method);
  5.  
  6.  return $this->call($method, $args);
  7. }
  8.  
  9. }
  10. ?>

Ponadto ustaw na poczatku skryptu
  1. <?php
  2. error_reporting( E_ALL );
  3. ?>

Wtedy bedzie widac ewentualne bledy
Mike122
Po dodaniu raportowania wszytkich błędów żaden error się nie wyświetla.... Skrypt niby jest dobry, ale nie działa.
hwao
Jak się nazywa klasa, i czy ma konstruktor?

Tzn może jest tak ze konstuktor nazywa sie tak samo jak klasa, wtedy jak wlaczasz w php5 musisz zamienic na __construct().
Mike122
Kontaktowałem się mailowo z twórcą skryptu odpisał mi że skrypt jest przystosowany pod PHP4 i żeby go przerobić pod PHP5 to troche roboty jest i trzeba się znać php a ja w php jestem początkujący sadsmiley02.gif
Więc dzięki hwao za pomoc, ale ostatniego postu twojego wogóle nie rozumiem sad.gif

Udostępniam wszytkim adres tego skryptu jeśli ktoś może udzielić pomocy to o nią proszę. Mogę podać też login i hasło do FTP.
http://alphasquad.hopto.org/PHPgoogleSearch/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.