![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam oto taki skrypt:
[php:1:3bff2b36d8]<?php set_time_limit(0); error_reporting(E_ALL); function getmicrotime() { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $time_start = getmicrotime(); // pobranie czasu poczatkowego $glowny = file("glowny.txt"); $porownanie = file("telefony.txt"); $adresy = file("klienci.txt"); $i = 0; $n = 0; echo('Trwa liczenie danych... to moze portrwac do 5 minut<br><pre>'); echo('0% 50% 100%' . "n"); flush(); foreach($glowny as $main_item) { $n++; $main_item = trim($main_item); if(!isset($nowa_partia)) { if(ereg("^[0-9]{4}-[0-9]{2}-[0-9]{2}$", $main_item)) { $nowa_partia = 1; $data = $main_item; } if(ereg("^[0-9]+|[0-9]+$", $main_item) OR ereg("^[0-9]+$", $main_item)) { $dane = explode("|", $main_item); $imei = $dane[0]; if(count($dane) == 2) { $sim = $dane[1]; } else $sim = ''; //$i++; foreach($porownanie as $comp_item) { $comp_dane = explode("|", $comp_item); /*if(ereg("^[0-9]{6,16}$", $comp_dane[0]) OR ereg("^[0-9]{6,16}$", $comp_dane[1])) { $comp_imei = trim($comp_dane[0]); $comp_sim = ''; } elseif(ereg("^[0-9]+$", $comp_dane[1]) OR ereg("^[0-9]+$", $comp_dane[0])) { $comp_sim = trim($comp_dane[1]); $comp_imei = ''; }*/ if((int) $comp_dane[0] > 1) { $comp_dane[0] = (int) $comp_dane[0]; } elseif((int) $comp_dane[1] > 1) { $comp_dane[1] = (int) $comp_dane[1]; } if((is_int($comp_dane[0]) AND strlen($comp_dane[0]) < 17) OR (is_int($comp_dane[1]) AND strlen($comp_dane[1]) < 17)) { $comp_imei = trim($comp_dane[0]); $comp_sim = ''; } elseif((is_int($comp_dane[0]) AND strlen($comp_dane[0]) > 17) OR (is_int($comp_dane[1]) AND strlen($comp_dane[1]) > 17)) { $comp_sim = trim($comp_dane[1]); $comp_imei = ''; } else echo("<br>BLAD! " . strlen($comp_sim) ."<br>"); if($comp_imei == $imei) { $i++; //echo('Mamy trafienie!<br>'); //echo("IMEI: $imei SIM: $sim LINIJKA: $comp_item <br>"); } } } } else { $n_zestawu = $main_item; unset($nowa_partia); } if(is_int($n / 100)) { echo("*"); flush(); } } $time_end = getmicrotime(); // obliczenie roznicy czasu $time = round($time_end - $time_start, 4); //zaokraglenie echo '<br>Skrypt wykonany w czasie: '.$time.' sekundy</p>'; echo("</pre><br>$i"); ?>[/php:1:3bff2b36d8] A jego wynik jest taki: Kod Trwa liczenie danych... to moze portrwac do 5 minut
0% 50% 100% ********************** Skrypt wykonany w czasie: 92.3461 sekundy 2 Jak moge przyspieszyć? Jakieś pomysły? Próbowałem regexpów - strasznie wolne (dwa razy).[/code] |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Mam oto taki skrypt:
[php:1:bbcb711f21]<?php ... ?>[/php:1:bbcb711f21] Jak moge przyspieszyć? Jakieś pomysły? Próbowałem regexpów - strasznie wolne (dwa razy). Kolejno 1) zmienic ereg na preg_match - sa szybsze. zapewniam 2) zamiast foreach for 3) zamiast pobierac caly plik fgets'uj po linijce i wtedy dopiero analizuj. 4!) skrypt ktory dostarczyles jest niekompletny - brak plikow .txt (wiec jak sprawdzac czy pomoglo..) oraz brak komentarzy wiec wogole nie wiadomo co skrypt ma robic. Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze. Wzbogaciłem skrypt o komentarze i dodałem potrzebne pliki. Można to ściągnąć z: www.telecard.pl/tmp/php.pl.rar
Proszę o w miarę szybką pomoc :-). Ew. też o zgłaszanie błędów (wszystkich chętnych oczywiście, jak ktoś nie chce pomóc to niech nie mówi "eeeee... czego ty wymagasz" tylko siedzi cicho :-)). |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
A ja proszę tylko o to, by nie dawać mi paczek z rarem...
Czy tak ciężko na końcu skryptu dodać [manual:e5dc9cfd41]highlight_file()[/manual:e5dc9cfd41]? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
albo chociaż [manual:0a0a65c4a6]show_source()[/manual:0a0a65c4a6]
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
8) dobre, dobre
![]() Cytat show_source
show_source -- Alias of highlight_file() Description This function is an alias of highlight_file(). -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A ja proszę tylko o to, by nie dawać mi paczek z rarem...
Czy tak ciężko na końcu skryptu dodać [manual:334737d510]highlight_file()[/manual:334737d510]? Może i nie ciężko, ale mój komputer nie chodzi 24h na dobe ;-). Pozatym skrypt nie wymaga bazy/ustawiania czegokolwiek. Można spokojnie testować lokalnie. (unikanie błędów, optymalizacja), ale skoro się upierasz (może masz racje - nie wiem :-)) to prosze: http://212.160.55.72/ Zresztą gdyby każdy sobie testował na moim komputerze, zajeło by to wieczność, bo skrypt wykonuje się niezwykle długo (2 minuty, czasem więcej). //Update: po krótkim namyśle wpadłem na fajny pomysł :-). Highlightowany pliczek jest tu: http://212.160.55.72/index_hl.php |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Kurtz << no ja bym nie byl taki pewny czy ten preg_match jest szybszy w stosunku do ereg ... w przypadku wyrazen regularnych tak ... ale w przypadku gdy szukamy np "ala" w stringu "ala ma kota" ... to z moich testow wynika, ze ereg wygrywa
z reszta radze samemu potestowac ... -------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 22:05 |