![]() |
![]() |
![]()
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] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:40 |