Jump to content
php.lv forumi

Noderīgas funkcijas


Pentiums

Recommended Posts

  • 10 months later...
  • Replies 108
  • Created
  • Last Reply

Top Posters In This Topic

Funkcija priekš paroles ģenerēšanas

 

function parole($garums= 7) {
       	$aZ09 = array_merge(range('A', 'Z'), range('a', 'z'),range(0, 9));
       	$izvade ='';
       	for($c=0;$c < $garums;$c++) {
          	$izvade .= $aZ09[mt_rand(0,count($aZ09)-1)];
       	}
       	return $izvade;
   	}

Link to comment
Share on other sites

Nav labākais risinājums, jo useri nevar atšķirt I no l

( pats vari ? )

piemēram atnāks tev parole:

IlIlIlIl

tagat ludzu ievadi ;)

(tur ir gan lielais i gan mazais L )

piedevam labak visus ar lielajiem vai visus ar mazajiem.

tāpēc jaizvairās no simboliem kuri var izraisīt pārpratumus

i L 1 0 o

Zinu šo no pieredzes.

 

function paroles_generators($length)
{
  $keychars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
  $randkey = "";
  $max=strlen($keychars)-1;
  for ($i=0;$i<=$length;$i++) {
  $randkey .= substr($keychars, rand(0, $max), 1);
}
 return $randkey;
}

P.S. ka to masīvu izvadi jau vairs nav būtiski , doma bija tieši par masīva saturu .

 

edit: nu jā var vel piemest spec simbolus @ # $ % & *

Edited by Grey_Wolf
Link to comment
Share on other sites

  • 1 month later...

Funkcija, ja masīvs ir jāattēlo kā seletBox

Funkcija lang() ir valodas funkcija un tās realizācija ir cits stāsts.

function lang($x){ return ('['.$x.']'); }

function select($array,$name,$value,$js=''){

$return= '<code>'.lang($name).'</code>';
$return.="\n".'<select name="'.$name.'" '.$js.'>';
   	foreach (array_keys($array) as $key){
   	$sel = $value == $key ? ' selected ':'';
   	$return.="\n".'<option '.$sel.' value="'.$key.'">'.lang($array[$key]).'</option>';
   	}
$return.="\n".'</select>';
return $return;
   	}


echo select($years=array(2011,2012,2013),'car[year_of_manufactoring]',2012,$js='');

Link to comment
Share on other sites

Funkcija čekboxu atgriešanai no mysql tabulas ( ja to ir mazāk par 100 :) )

 

function checkBoxList($name,$idx,$table,$values,$rule=null){
#RETURNS:
# array('column<checkBox name="table[keyrow]" value="1"/>', ...)
$q=' SELECT '.$name.','.$idx.' FROM '.$table.' ';
if( is_string($rule) ) { $q.=' WHERE '.$rule.' ';}
if( is_array($rule) ) { $q.=' WHERE '. implode(' AND ',$rule);}

$result = mysql_query($q);
if( !$result ) { return mysql_error().'@'.__LINE__.__FILE__; }
$return =array();
while( $row = mysql_fetch_row($result)) {
$sel='';
if(is_array($values)){if(in_array($row[1],$values)){$sel='checked';}}else{ if($row[1]===$values) {$sel='checked';}}
$return[] = $row[0].'<input type="checkbox" name="'.$table.'['.$row[1].']" '.$sel.' value="1"/>';
}
return $return;
}

Lietojums:

$list= checkBoxList('user','id','users', $values=array(4,5),$rule='active=1');
echo implode('<hr/>',$list)

Link to comment
Share on other sites

Abstrakcija, abstrakcija, abstrakcija,...

Ja es gribu uzģenerēt checkboxu no memcached datiem, vai no cita avoda, tad man šī funkcija ir nederīga, jo tā satur 2 pilnīgi dažādas funkcionalitātes: 1) nolasīt datus no mysql, 2)no datiem uzbūvēt checkboxa html. Tik atšķirīgām funkcionalitātēm jāatrodas atsevišķi.

Link to comment
Share on other sites

  • 1 month later...

function seo_string($str, $separator = '-') {
   setlocale(LC_ALL, 'en_US.UTF8');
   return str_replace(' ', $separator, trim(preg_replace('/[^ A-Za-z0-9_]/', ' ', trim(iconv('UTF-8', 'ASCII//TRANSLIT', preg_replace('/[ -]+/', '-', $str))))));
}

 

Šeit vēl prasās preg_replace('/--+/', '-', $str), lai vairākas viena otrai sekojošas domuzīmes aizvietotu ar vienu.

Link to comment
Share on other sites

  • 1 year later...

Mūžu senā bet noderīgā funkcija array apskatei normālā skatā ar <pre> tagiem.

function printr($var){
echo "<pre>";
print_r($var);
echo "</pre>";
}

Kā arī kautkas prieciņam :)

function skaitamAitas($aitas){
    $i = 1;
    while ( $i <=$aitas ) {
       echo $i++ .'. aita<br>';
    }
}
Edited by Pieduriens
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...