Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Optymalizacja wolnego działania skryptu
gg1985
post 10.10.2011, 09:29:06
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Zadaniem mojego skryptu jest około 10 krotnie wywołanie innych plików, które są na tym samym serwerze. Teraz mam file_get_contents wewnątrz foreacha. Wolno to działa. Może da się jakoś inaczej?

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
elektrrrus
post 10.10.2011, 09:59:01
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

Ostrzeżenie: (0%)
-----


Spróbój DirectoryIterator.
Go to the top of the page
+Quote Post
gg1985
post 10.10.2011, 10:05:20
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Nie do końca mi o to chodziło. Przez file_get_contents pobieram sobie plik, z tego samego serwera, który zwraca mi tablicę wartości, tzn. w tym pliku jest echo. Dlatego same wykonanie to nie wszystko, potrzebuje jeszcze pobrać to, co wypluwa ten plik.


--------------------
Go to the top of the page
+Quote Post
Crozin
post 10.10.2011, 10:13:40
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To może pokaż co tam teraz masz.
Go to the top of the page
+Quote Post
gg1985
post 10.10.2011, 10:27:39
Post #5





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Chyba tak będzie najlepiej:

Kod
foreach($phrases as $val){
    $pos = file_get_contents("http://adres.pl/getPosition.php?phrase=".urlencode($val)."&site=$address");
    $pos = explode ('|', $pos);
    $row = "<tr><td>$val</td><td align=\"center\">$pos[0]</td><td align=\"center\">$pos[1]</td></tr>";
    $message .= $row;
    echo $row;
    $sum += $pos[1];
}


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.10.2011, 10:32:34
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Zadaniem mojego skryptu jest około 10 krotnie wywołanie innych plików
Przecież w kodzie co podałeś wywołujesz ciągle ten sam jeden plik a nie 10 różnych :/

Totalnie bezsensu. Zapisz to co robi ten plik w funkcji i poprostu odpalaj funkcje a nie jakieś dzikie kombinacje robisz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
gg1985
post 10.10.2011, 10:38:44
Post #7





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Tak, wywołuje 10 razy ten sam plik z różnymi parametrami. W pliku getPosition.php mam:

Kod
curl_setopt($rC, CURLOPT_HEADER, 0);
curl_setopt($rC, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($rC, CURLOPT_VERBOSE, 1);
curl_setopt($rC, CURLOPT_REFERER, 'www.google.pl');
curl_setopt($rC, CURLOPT_URL, sprintf($sURLTpl, urlencode($sQ)));
$sData = curl_exec($rC);
curl_close($rC);


Czy wrzucenie tego do funkcji w miejsce file_get_contents na pewno poprawi szybkość?


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.10.2011, 10:42:48
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Tak, wywołuje 10 razy ten sam plik z różnymi parametrami.
To już wiem, przecież sam ci to napisałem, bo z pierwszego posta można było wywnioskować, że to ty tego nie wiesz.

Cytat
Czy wrzucenie tego do funkcji w miejsce file_get_contents na pewno poprawi szybkość?

1) zamiast file_get_contents() będziesz wywoływał funkcje, którą masz zdefiniować gdzieś wcześniej - tak, to przyspieszy ten kod, bo nie będziesz już bez sensu ładował przez http tego pliku.
2) Czy przyspieszy znacznie? Może się okazać, że nie koniecznie, gdyż ty w tym pliku latasz do google, i może się okazać, że dośc spore opóźnienia masz właśnie tam.
3) Mógłbyś cachować u siebie wyniki. Przecież pozycja podanych adresów nie zmienia się zbyt często wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
gg1985
post 10.10.2011, 10:49:09
Post #9





Grupa: Zarejestrowani
Postów: 174
Pomógł: 3
Dołączył: 23.02.2008

Ostrzeżenie: (0%)
-----


Dzięki smile.gif Poczytam jeszcze o cURL, bo tam chyba jest jakaś opcja, że jakby google nie odpowiadał długo, to można ustawić, żeby po określonym czasie zrywał połączenie.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.07.2025 - 09:41