2016-03-20 16 views
2

Aşağıdaki kodla aynı sonucu almak için $ _POST dizisini bir döngüde çalıştırabilir miyim?

$_POST['manufacturer'] = strip_tags($_POST['manufacturer']);<br> 
$_POST['part_no']  = strip_tags($_POST['part_no']);<br> 
$_POST['product_name'] = strip_tags($_POST['product_name']);<br> 
$_POST['link']   = strip_tags($_POST['link']);<br> 

Ya $ _POST dizideki her alanına sayisinda strip_tags() uygulamak için bir yol var? '

foreach($_POST AS $key=>$val) 
    { 
     $_POST[$key] = strip_tags($val); 
    } 
+0

gibi bir isim ile, örneğin, birkaç giriş; $ form = array_map ("trim", $ form); Bu yeni bir soru olabilir, bir dizi içindeki tüm beyaz boşlukları kaldırmak için array_map'i kullanabilir miyim ve eğer öyleyse bunu nasıl yazabilirim? – Kevin

cevap

5

Evet, aşağıda gibi yapabilirsiniz, array_map()

$_POST = array_map("strip_tags", $_POST); 
+1

Bunu yeni bir değişken adına çıkarmayı tercih ederim. Eğer '$ _POST' un kendisini değiştirmeden bırakırsanız daha iyi olur, çünkü daha sonra herhangi bir karışıklığı önler. – Spudley

+0

OP'nin istediği bu, ancak, evet, sonucu yeni bir değişkene koymanızı da tavsiye ederim. –

+0

Bu değişiklikleri yaptım

$ form = array_map ("strip_tags", $ _POST);
$ form = dizi_map ("trim", $ form);

Bu yeni bir soru olabilir, array_map'i bir dizideki tüm beyaz boşlukları kaldırmak için kullanabilir miyim, eğer öyleyse bunu nasıl yazabilirim? – Kevin

-1

kullanmak

'u arıyoruz Ancak, dizi değerlerinden birinin kendisinin bir dizisi olması durumunda, strip_tags öğesinin bu değeri geçersiz kılacağını unutmayın. Anahtar üst dizide kalır, ancak bu anahtarın değeri boş olacaktır. Bunu önlemek için array_map yerine kullandığım bir işlev. $ _POST'nuzda html giriş alanı dizileriniz varsa olası bir kullanımdır. Bu değişikliklerin $ formu = array_map ("strip_tags", $ _POST) yapmış name="hello[]"

function strip_tags_array($array){ 
    $result=array(); 
    if(is_array($array)){ 
     foreach($array as $key=>$value){ 
      if(is_array($value)){ 
       $result[$key]=strip_tags_array($value); 
      } 
      else if(is_string($value)){ 
       $result[$key]=strip_tags($value); 
      } 
      else{ 
       $result[$key]=$value; 
      } 
     } 
    } 
    return $result; 
} 

$_POST = strip_tags_array($_POST); 
0
Daha önce belirtildiği

, array_map() işlevi şudur: Herhangi bir PHP dahili işlevini kullanmak istemiyorsanız

İlgili konular