Вы не зашли.
Главная » PHP » Оптимизация php кода
#1. WapStyle Off (3)
Участник
2009.07.24 12:12
Вот решил оптимизировать код на скорость.

Так вот пришол в тупик.

на что заменить чтобы было побыстрее и попроще
вот куски кода:

Код:
if(!eregi('[A-z0-9]{32}',$sess)){
$sess=md5(rand(09009,999999));
}
Код:
for($i=0;$i<count($fset);$i++ ){
 
if(ereg('[^//].*=', trim($fset[$i]))){
$sset=explode('=', trim($fset[$i]), 2);
$sset[0]=eregi_replace('(^ *)|( *$)', '', $sset[0]);
$sname=$sset[0];
$set_komm[$sname]=eregi_replace('^.*//', '', $sset[1]);
$set_komm[$sname]=eregi_replace('(^ *)|( *$)', '', $set_komm[$sname]);
$sset[1]=eregi_replace('//.*$', '', $sset[1]);
$sset[1]=eregi_replace('(^ *)|( *$)', '', $sset[1]);
$set[$sname]=$sset[1];
}
}
Код:
if(isset($_SERVER["HTTP_USER_AGENT"]) && (eregi('windows', $_SERVER["HTTP_USER_AGENT"]) ||eregi('linux', $_SERVER["HTTP_USER_AGENT"]) ||eregi('bsd', $_SERVER["HTTP_USER_AGENT"]) ||eregi('x11', $_SERVER["HTTP_USER_AGENT"]) ||eregi('unix', $_SERVER["HTTP_USER_AGENT"]) ||eregi('macos', $_SERVER["HTTP_USER_AGENT"]) ||eregi('macintosh', $_SERVER["HTTP_USER_AGENT"]))){
$webbrowser=true;
}else{
$webbrowser=false;
}
Код:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']!='127.0.0.1' && ereg("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$",$_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip2['xff']=$_SERVER['HTTP_X_FORWARDED_FOR'];
$ipa[] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
 
if(isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']!='127.0.0.1' && ereg("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$",$_SERVER['HTTP_CLIENT_IP'])){
$ip2['cl']=$_SERVER['HTTP_CLIENT_IP'];
$ipa[] = $_SERVER['HTTP_CLIENT_IP'];
}
 
if(isset($_SERVER['REMOTE_ADDR']) && ereg("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$",$_SERVER['REMOTE_ADDR'])){
$ip2['add']=$_SERVER['REMOTE_ADDR'];
$ipa[] = $_SERVER['REMOTE_ADDR'];
}
Кто поможет?
#2. Gemorroj Off (107)
Administrator
2009.07.24 12:12
во первых убрать все ereg'i и заменить как минимум preg_ регулярками. а лучше строковыми функциями. в некоторых случаях делающиеся тут проверки вообще не нужны, как например фильтрация $_SERVER['REMOTE_ADDR']
#3. WapStyle Off (3)
Участник
2009.07.24 13:01
А как можно узнать скорость выполнения запросов к базе и всего остального?
#4. Gemorroj Off (107)
Administrator
2009.07.24 14:02
в гманагере уже есть подсчет занятого SQL запросом времени. уже готов гманагер с отображением занятого времени и занятой оперативой паматью в eval, но пока эту версию не выкладывал в сеть, т.к. качество интернета на данный момент не позволяет. а вообще, в начале кода смотришь microtime и в конце. и сверяешь их.
#5. WapStyle Off (3)
Участник
2009.07.24 14:02
А если так?

Код:
class Debug {
function startTimer() {
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
 
 
function endTimer() {
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round (($endtime - $starttime), 4);
return $totaltime;
}
}
$Debug = new Debug;
$Debug->startTimer();

//Тут код

echo $Debug->endTimer();
#6. Gemorroj Off (107)
Administrator
2009.07.24 17:05
smile)
лучше писать microtime(true); и не изобретать велосипедов)
#7. WapStyle Off (3)
Участник
2009.07.24 19:07
big_smile
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.014 s