Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554

    [php] stripslashes su array multidimensione

    Ho questa funzione per annullare l'effetto di magic_quotes_gpc
    codice:
    function magicquotesremove(&$array)
    {
      if(!get_magic_quotes_gpc())
        return;
      foreach($array as $key => $value)
      {
        if(is_array($value))
          magicquotesremove($value);
        else
          $array[$key] = stripslashes($value);
      }
    }
    dovrebbe funzionare anche con array a più di una dimensione ma.
    codice:
    $array            = array();
    $array1['a']      = 's\tringa1';
    $array1['b'][1]   = 'st\ringa2';
    $array1['b'][2]   = 'str\inga3';
    $array1['c']      = 'stri\nga4';
    
    echo '<pre>';
    print_r($array1);
    echo '</pre>';
    
    magicquotesremove($array1);
    
    echo '<pre>';
    print_r($array1);
    echo '</pre>';
    provate per favore
    Vivrò una vita intera e fortunatamente morirò una volta sola

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Il tuo non mi funziona,prova così:
    Codice PHP:
    <?php
    function magicquotesremove(&$array)
    {
      if(!
    get_magic_quotes_gpc())
        return 
    false;
      foreach(
    $array as $key => $value)
      {
        
    //print_r($value);
          
    if(!is_array($value))
          return 
    false;
        else
            
    $array[$key] = array_map("stripslashes",$value);
      }
      return 
    $array
    }


    $arr = array(array("el\'1","ele\'2"),array("c\'ccc","ert\'poi"));
    echo 
    "<pre>";
    print_r($arr);
    echo 
    "</pre>";

    $arrStrip magicquotesremove($arr);


    echo 
    "<pre>";
    print_r($arrStrip);
    echo 
    "</pre>";

    ?>
    ciao

  3. #3
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Oppure:
    codice:
    function magicquotesremove($value)
    {
      if(!get_magic_quotes_gpc())
        return;
      $value = is_array($value) ? array_map('stripslashes_deep',$value) : stripslashes($value);
      return $value;
    }
    e poi la uso come scrivi tu.
    Vivrò una vita intera e fortunatamente morirò una volta sola

  4. #4
    e se l'array ha altri livelli di profondità e non si fermasse a 2?

    ci dev'essere un qualcosa, anche se al momento mi sfugge
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Originariamente inviato da 13manuel84
    e se l'array ha altri livelli di profondità e non si fermasse a 2?

    ci dev'essere un qualcosa, anche se al momento mi sfugge
    Probabilmente fare una funzione ricorsiva che strippa gli slash a tutti i livelli, o passare un parametro che gli dice a che livello strippare...
    Può essere?

    ciao

  6. #6
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Originariamente inviato da 13manuel84
    e se l'array ha altri livelli di profondità e non si fermasse a 2?

    ci dev'essere un qualcosa, anche se al momento mi sfugge
    L'ultima funzione che ho scritto funzia con n livelli.

    Probabilmente fare una funzione ricorsiva che strippa gli slash a tutti i livelli, o passare un parametro che gli dice a che livello strippare...
    Sarebbe quello che vorrei fare.
    Vivrò una vita intera e fortunatamente morirò una volta sola

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.