[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
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]