ugrás a tartalomhoz

func_get_args pass to sprintf

szabo.b.gabor · 2011. Május. 17. (K), 15.17
Sziasztok!

Az sprintf funkcionalitását szeretném kibővíteni annyival, hogy stringek esetén egy mysql escape is legyen nyomva a dolgokra. végeredményként egy biztonságos sql query-t szeretnék kapni.

gondoltam csinálok egy változó mennyiségű paramétert kezelő függvényt ugyanúgy, mint az sprintf, végigmegyek az argumentumokon elvégzem amit akarok, aztán áttolom az sprintf-nek.

no de hogy toljam át? ötletek?
 
1

közben meglett... vmi

szabo.b.gabor · 2011. Május. 17. (K), 15.30
közben meglett...
vmi ilyesmi
  1. function squery(){  
  2.     $args=func_get_args();  
  3.     $query=array_shift($args);  
  4.     foreach($args as &$a){  
  5.         if(!is_numeric($a)){  
  6.             $a=$this->real_escape_string($a);  
  7.         }  
  8.     }  
  9.     array_unshift($args$query);  
  10.     return call_user_func_array('sprintf',$args);  
  11. }  
2

call_user_func_array

Poetro · 2011. Május. 17. (K), 15.34
  1. function mysql_escape($query) {  
  2.   // Vegyük a kapott paramétereket.  
  3.   $args = func_get_args();  
  4.   // A query már megvan  
  5.   array_shift($args);  
  6.   // Escapeljük a bejövő adatokat  
  7.   $args = array_map('mysql_real_escape_string'$args);  
  8.   // Visszarakjuk a query-t.  
  9.   array_unshift($args$query);  
  10.   // Meghívjuk az sprintf-t.  
  11.   return call_user_func_array('sprintf'$args);  
  12. }