Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Szybkość działania wyrażeń regularnych
Forum PHP.pl > Forum > Przedszkole
siK
Witam.

Kilka dni temu zainteresowałem się php, a dokładniej wyrażeniami regularnymi i postanowiłem sobie skleić mały skrypt przy użyciu manuala i tego forum. Problem w tym, że ładuje się on około 4 sekund i w związku z tym mam kilka pytań.

1. Jeśli mam możliwość uzyskać wynik przez get_headers() to z niego jest lepiej wyciągać wyrażeniami regularnymi (przykład Validator) czy też pobrać cały kod strony(przykład google) i tam dopiero zastosować wyrażenia? Osobiście wydaje mi się, że lepiej zadziała get_headers() bo pobiera tylko małą ilość informacji, a w przypadku kodu jest tego o wiele więcej.
2. Czy php nadaje się do tego aby wyciągać dane np. ze 100 stron? Bo jest kilkaset stron opartych o jeden skrypt i chciałbym kilka danych z każdej strony wyciągnąć i stworzyć sobie taką bazę danych, którą będę aktualizował raz na jakiś czas.
3. Czy są tu jakieś błędy, których ja nie widzę, a spowalniają kod?


Oto kod:
  1. <?php
  2. // ************ Adres strony **************
  3. $strona = 'wp.pl'; //adres strony
  4.  
  5. // ********************************** Google **********************************************
  6. $pobieranie2 = file('http://www.google.pl/search?hl=pl&source=hp&biw=1366&bih=641&q=site%3A'.$strona.'&aq=f&aqi=&aql=&oq='); //pobiera site z google i laduje do tablicy
  7. $polacz = implode(',', $pobieranie2);
  8. $kodGoogle = htmlspecialchars($polacz); //zamiana na ciag znakow
  9.  
  10. preg_match('/Oko.o\s([0-9,]+)\s/', $kodGoogle, $wynik2); //sprawdza ilosc zaindeksowanych
  11.  
  12. echo 'Zaindeksowało '.$wynik2[1].'<br />'; //wyświetla ilośc zaindeksowanych
  13.  
  14.  
  15. /*
  16. Tutaj znajduje się kod z jeszcze jednego serwisu
  17. ...
  18. ...
  19. */
  20. //**************** Validator ************************************
  21. $header = get_headers('http://validator.w3.org/check?uri='.$strona.'&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.2');
  22.  
  23. if($header[5] == 'X-W3C-Validator-Status: Valid') {
  24. echo 'Kod HTML jest poprawny';
  25. }
  26.  
  27. else {
  28. preg_match('#Warnings\:\s([0-9]+)#',$header[7],$kodd);
  29. preg_match('#Errors\:\s([0-9]+)#',$header[6],$kodd[]);
  30.  
  31. echo 'Błędów: '.$kodd[2][1].' ostrzeżeń: '.$kodd[1];
  32. }
  33. $ip = gethostbyname($strona);
  34. echo '<br />'.$ip
  35. ?>
Zyx
Ściągasz dane z sieci, i to jeszcze w najgłupszy możliwy sposób, czyli robiąc file(), a później explode() i dziwisz się, że Ci skrypt wolno działa? Po co ten pobrany wynik pakujesz do tablicy, kiedy nic z nim później nie robisz?
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.