Jump to content
php.lv forumi

Леший

Reģistrētie lietotāji
  • Posts

    666
  • Joined

  • Last visited

Posts posted by Леший

  1. Mārci, stringi savā dziļā būtībā arī ir masīvs (kas ir kodējis C/C++, sapratīs). Tā, ka principā rezultāts ir paredzams.

     

    Vispār, ja mēs dzenamies pēc performances, tad īstā vieta, kur izmantot chr() funkciju (optimālāk diez vai būs).

    function rand1(){
       $chars = implode(array_merge(range(0, 9), range('a', 'z'), range('A', 'Z')));
       $l = strlen($chars)-1;
       $r = '';
       for($i = 0; $i < 5; $i++) $r.= $chars[mt_rand(0, $l)];
       return $r;
    }
    
    function rand2(){ 
       $chars = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'));
       shuffle($chars);
       return implode(array_slice($chars, 0, 5));
    }
    
    function randString($length, $str = ''){
       $rand = mt_rand(0, 61);
       return $length==0?$str:$str.randString($length-1, chr($rand>35?$rand+0x3D:($rand>9?$rand+0x37:$rand+0x30)));
    }
    
    $t1 = microtime(true);
    for($i = 0; $i <= 100000; $i++) rand1();
    $t2 = microtime(true);
    for($i = 0; $i <= 100000; $i++) rand2();
    $t3 = microtime(true);
    for($i = 0; $i <= 100000; $i++) randString(5);
    $t4 = microtime(true);
    
    printf("rand1: %.5f\nrand2: %.5f\nrandString: %.5f", $t2-$t1, $t3-$t2, $t4-$t3);
    /*
    1st:
    rand1: 3.91979 
    rand2: 3.53275 
    randString: 1.91287
    
    2nd:
    rand1: 3.97741 
    rand2: 3.50666 
    randString: 1.92325
    
    3rd:
    rand1: 4.24653 
    rand2: 3.50567 
    randString: 1.89667
    */
    
    

     

    EDIT: Ja aizvākt perversiju ar rekursiju un ielikt while, tad būs vēl ātrāk.

  2. Browseris seivo to laiku kaut kur dziļi savos temp settingos. Pats uz šo uzrāvos reizes 3, viņš atcerās session time no pirmās reizes, un pēc tam vari mainīt, cik gribi - viņš vienalga atcerās to pirmo. Palīdzēja tikai browsera reinstall. Un tas laikam bija tikai mozillai.

  3. Problema taja, ka kaa jau teicu, to funkciju vajag palaist ieksh header.php un include.php ir sads:

     

    function f($var)

    {

    ...

    }

     

    function header()

    {

    include 'header.php';

    }

     

    attiecigi

    details.php ir $mainigais un header();

    Problēma ir, ka tu includo header iekš funkcijas ķermeņa. Acīmredzot, mainīgie un funkcijas, kas atrodās ārpus tas funkcijas, nebūs pieejamas, ja nav global.

×
×
  • Create New...