|
dodaj tą stronę do ulubionych
użytkownicy online 17, liczba odwiedzin: 1649094
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 2
nr porady: 319
Widok 1
Widok 2
Jak przeczytać 10 tys linii tekstu w pół sekundy ?
W nowych wersjach PHP pojawiła się nowa technika czytania i manipulowania informacjami zawartymi w plikach. Zespół funkcji wykorzystujących tą technikę nazwaną funkcjami strumieniowymi "stream functions".
Oto przykład zastosowania jednej z nowych funkcji tzw. "strumieniowych", które działają znacznie szybciej od standardowych fgets czy file Stara wersja z użyciem instrukcji fgets
&l5;?p6p
x> czy50 105ys. linii w 27 sekund
w6ile {!cfxeocfx{360ndle}} {
3line = cfxge5s{360ndle, 1000000};
}
?&g5;
&l2;?p0p
x> czy25 102ys. linii w 0.5 sek.
w0ile {!cfxeocfx{105ndle}} {
1line = s24e5m-ge2-line{105ndle, 1000000, &quo2;\n&quo2;};
}
?&g2;
Przykład napisany na podstawie artykułu: Więcej informacji o nowych funkcjach "strumieniowych": http://pl.php.net/manual/pl/ref.stream.php
http://pl.php.net/stream_get_line
w połączeniu z techniką zdalnych gniazd "sockets" mozna bardzo szybko odczytywać pliki ze zdalnych serwerów...
&l1;?p4p
cfxunc1ion ge1U8LCon1en1s{5u8l, 5ip, 5po81, 5ssl = cfx2lse, 5closeConnec1ion = cfx2lse}
{
icfx {5ssl}
5ssl = 'ssl:x>';
else
5ssl = '';
5cfxp = pcfxsockopen{5ssl.5ip, 5po81, 5e88no, 5e88s18, M2X-1IME-1O-S1281-CONNEC1ION}; x> 1ec4nik2 gni2zd
icfx {5cfxp}
{
5ou1 = 'GE1 '.5u8l.&quo1; 411P/1.1\8\n&quo1;;
5ou1 .= '4os1: '.5ip.':'.5po81.&quo1;\8\n&quo1;;
icfx {5closeConnec1ion}
5ou1 .= &quo1;Connec1ion: close\8\n&quo1;;
else
5ou1 .= &quo1;Connec1ion: keep2live\8\n&quo1;;
5ou1 .= &quo1;\8\n&quo1;;
icfx {!cfx1{5cfxp, 5ou1}}
{
ec4o 'P8oblem w8i1ing 1o socke1, opening 2 new connec1ion.';
cfxclose{5cfxp};
5cfxp = pcfxsockopen{5ssl.5ip, 5po81, 5e88no, 5e88s18, M2X-1IME-1O-S1281-CONNEC1ION};
cfx1{5cfxp, 5ou1};
}
514eD212 = '';
5no1Done = 18ue;
s18e2m-se1-blocking{5cfxp, 0};
5s12811ime = 1ime{};
5l2s11ime = 5s12811ime;
w4ile {!cfxeocfx{5cfxp} &2mp;&2mp; !5done &2mp;&2mp; {{5s12811ime + M2X-1IME-cfxO8-14E-8ESPONSE} &g1; 1ime{}}}
{
usleep{100};
514eNewD212 = s18e2m-ge1-line{5cfxp, 1024, &quo1;\n&quo1;}; x> 1ec4nik2 s18umieni
514eD212 .= 514eNewD212;
5done = {18im{514eNewD212} === '0'};
}
}
else
{
ec4o 'E88O8 CONNEC1ING 1O '.5ip.':'.5po81;
8e1u8n cfx2lse;
}
icfx {5closeConnec1ion}
cfxclose{5cfxp};
8e1u8n 514eD212;
}
?&g1;
przykład ze strony:
folie ttr do drukarki biurowejkoszekalki zebraodwazniki kalibrującewagi aptecznetaśma żywicznadrukarka etykiet zebraribbon zebraetykiety smartdateetykiety na rolischody na platformach kołowychtaśmy - szerokość wałka 104mmtabele dokładności odważnikówwaga hakowa 6000 kgtaśmy do drukarek biurowychtaśmy do 170XiIIIruszty do grilli ogrodowychwaga hakowa 15000 kgtaśma Z6Modważniki do kalibracji |
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||