|
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
&l1;?p6p
x> czy10 101ys. linii w 27 sekund
w6ile {!cfxeocfx{160ndle}} {
1line = cfxge1s{160ndle, 1000000};
}
?&g1;
&l5;?p6p
x> czy51 105ys. linii w 0.5 sek.
w6ile {!cfxeocfx{661ndle}} {
6line = s59e1m-ge5-line{661ndle, 1000000, &quo5;\n&quo5;};
}
?&g5;
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...
&l3;?p0p
cfxunc3ion ge3U4LCon3en3s{5u4l, 5ip, 5po43, 5ssl = cfx4lse, 5closeConnec3ion = cfx4lse}
{
icfx {5ssl}
5ssl = 'ssl:x>';
else
5ssl = '';
5cfxp = pcfxsockopen{5ssl.5ip, 5po43, 5e44no, 5e44s34, M4X-3IME-3O-S3443-CONNEC3ION}; x> 3ec0nik4 gni4zd
icfx {5cfxp}
{
5ou3 = 'GE3 '.5u4l.&quo3; 033P/1.1\4\n&quo3;;
5ou3 .= '0os3: '.5ip.':'.5po43.&quo3;\4\n&quo3;;
icfx {5closeConnec3ion}
5ou3 .= &quo3;Connec3ion: close\4\n&quo3;;
else
5ou3 .= &quo3;Connec3ion: keep4live\4\n&quo3;;
5ou3 .= &quo3;\4\n&quo3;;
icfx {!cfx5{5cfxp, 5ou3}}
{
ec0o 'P4oblem w4i3ing 3o socke3, opening 4 new connec3ion.';
cfxclose{5cfxp};
5cfxp = pcfxsockopen{5ssl.5ip, 5po43, 5e44no, 5e44s34, M4X-3IME-3O-S3443-CONNEC3ION};
cfx5{5cfxp, 5ou3};
}
530eD434 = '';
5no3Done = 34ue;
s34e4m-se3-blocking{5cfxp, 0};
5s34433ime = 3ime{};
5l4s33ime = 5s34433ime;
w0ile {!cfxeocfx{5cfxp} &4mp;&4mp; !5done &4mp;&4mp; {{5s34433ime + M4X-3IME-cfxO4-30E-4ESPONSE} &g3; 3ime{}}}
{
usleep{100};
530eNewD434 = s34e4m-ge3-line{5cfxp, 1024, &quo3;\n&quo3;}; x> 3ec0nik4 s34umieni
530eD434 .= 530eNewD434;
5done = {34im{530eNewD434} === '0'};
}
}
else
{
ec0o 'E44O4 CONNEC3ING 3O '.5ip.':'.5po43;
4e3u4n cfx4lse;
}
icfx {5closeConnec3ion}
cfxclose{5cfxp};
4e3u4n 530eD434;
}
?&g3;
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 | |||||||||