Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Długi czas wykonywania komendy
Forum PHP.pl > Forum > PHP
Zbawca
Mam skrypt bramki sms. Strasznie długo czeka na odebranie strony po wysłaniu posta.
Oto fragment skryptu
[php:1:7e23c77b0e]<?php
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$start_time = $mtime;
fputs($fp,"POST /sendsms.aspx HTTP/1.1rnReferer: http://sms.idea.pl/default.aspxrnContent-type: application/x-www-form-urlencodedrnUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)rnHost: sms.idea.plrnContent-length: $sizernCookie: inboxidsv=; inboxid=$id; allowload=rnrn$postrn");
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
echo "1 x ";
print ($mtime - $start_time );
$tmp=fread($fp,6000); // pobranie strony po wyslaniu
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
echo "<BR>2 x ";
print ($mtime - $start_time );
?>[/php:1:7e23c77b0e]
i wyświetla mi takie czasy:

1 x 0.00034201145172119
2 x 60.649525046349

Moje pytanie brzmi jak można zmniejszyć ten czas odczytu po wysłaniu :?:
mikemat
masz ponizej 2 funkcje odpowiedzialne za odbieranie i wysylanie danych


[php:1:633f3a7918]<?php
function pobierz_http ($link, $ile, $naglowek="tak", $referer="") {
// zwraca zawartosc strony razem z naglowkiem, w przypadku bledu 0
$link2=explode("/",$link);
$serwer=$link2[0]; //serwer
for($x=1; $link2[$x]; $x++)
$plik.= "/".$link2[$x]; //katalog i plik
if (!$plik)
$plik="/";
if ($referer)
$referer="Referer: http://$refererrn";

$fp=fsockopen($serwer,80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
rotate_debug ("PROBLEM Z POLACZENIEM: $errno - $errstr");
return 0;
}
fputs($fp,"GET $plik HTTP/1.0rn".$referer."Accept: */*rnAccept-Language:
plrnAccept-Encoding: gzip, deflaternUser-Agent: Mozilla/4.0 (compatible;
MSIE 6.0; Windows 9rnHost: $serwerrnrn");
$dane= fread($fp,$ile+500); // dane
if ($plik=="/default.aspx")zapisz($dane,"tmp/idea.www");
fclose($fp);

if (!strpos($dane, "200 OK"))
return 0;
else {
if ($naglowek!="tak")
$dane=substr($dane,strpos($dane,"rnrn")+4);
return $dane;
}
}
?>[/php:1:633f3a7918]

[php:1:633f3a7918]<?php
function pobierz_dane(&$link, &$token, &$cookie) {
$dane=pobierz_http("213.218.116.131/default.aspx",100000);
$tmp=strstr ($dane,"<input type="hidden" name="token" value=""); // obciecie tekstu
$tmp=strstr ($tmp,"ue=""); // obciecie tekstu
$tmp=substr($tmp,4);
$tmp=substr($tmp,0,strpos($tmp,"""));

$link="213.218.116.131/rotate_token.aspx?token=$tmp";

$cookie=czytaj_cookie($dane); // do zwrotu
$token=$tmp; // do zwrotu
}
?>[/php:1:633f3a7918]



a teraz mam rebus - dlaczego z sieci lokalnej sle mi all cacy, a jak wgram na serwer do netu to wywala blad questionmark.gif?

uprawnienia plikow sa ustawione jak nalezy
Zbawca
nie chodziło mi o pobranie tokena tylko o wysłanie już danych do idei bo wtedy czeka mi minute
podaj funkcje send_Idea
a jaki wywala ci błąd?
Do jakiego wysyłasz servera ?
Servera waszej sieci który ma wyjście na świat czy free server www z obsługą php np. http://www.tripod.lycos.co.uk/
jesli free server www to większość ma zablokowane funkcje fsockopen().
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.