Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Sostituire & con & negli url

    Salve a tutti ho un problema con gli URL... in poche parole ho un testo che contiene HTML già formattato per lo standard W3C con questa funzione:

    Codice PHP:
    function clean_value($val) {

            if (
    $val == "")
            {
                return 
    "";
            }
            
    $val str_replace" "       " "             $val );
            
    $val str_replace"&"            "&am p;"         $val );//Ho scritto male amp perchè se no lo traduceva in &
            
    $val str_replace"<!--"         "<!--"  $val );
            
    $val str_replace"-->"          "-->"       $val );
            
    $val preg_replace"/<script/i"  "<script"   $val );
            
    $val str_replace">"            "&gt;"          $val );
            
    $val str_replace"<"            "&lt;"          $val );
            
    $val str_replace"\""           "&quot;"        $val );
            
    $val preg_replace"/\|/"        "|"        $val );
            
    //$val = preg_replace( "/\n/"        , "
    "          , $val ); // Convert literal newlines
            
    $val = preg_replace( "/\\\$/"      , "&#036;"        , $val );
            
    $val preg_replace"/\r/"        ""              $val ); // Remove literal carriage returns
            
    $val str_replace"!"            "!"         $val );
            
    $val str_replace"'"            "'"         $val ); // IMPORTANT: It helps to increase sql query safety.
            
    $val stripslashes($val);                                     // Swop PHP added backslashes
            
    $val preg_replace"/\\\/"       "\"        $val ); // Swop user inputted backslashes
            
    return $val;
        } 
    Il problema è che non trasforma le & degli url in &amp; (Non capisco per quale arcana ragione) ora non potendo fare altro che usare str_replace direttamente su tutto il testo il risultato è che sballo tutto il risultato della funzione precedente (es. & #092; -> &amp;#092 e per questo ho pensato di creare un piccolo algoritmo che quando trova il codice <a href=" traduce tutto quello che trovare all'interno degli apici solo che non ho idea da dove iniziare per farlo... mi appello al vostro aiuto

  2. #2
    prova ad usare htmlentities al posto della tua funzione...

  3. #3
    C'ho pensato pure io ma htmlentites converte anche le < > e non posso farlo visto che c'è dell'html nel testo, l'unica soluzione che ho trovato e creare quella funzione descritta sopra

  4. #4
    Ho risolto modificando

    $val = str_replace( "&" , "&am p;" , $val );

    in

    $val = str_replace( "&" , "&am p;amp;" , $val );

    ma anche se adesso lo script modifica corettamente i caratteri il validatore del w3c da ancora problemi...a rigurdo ho aperto un'altra discussione per chi fosse interessato...

    http://forum.html.it/forum/showthrea...1#post11538161

  5. #5
    a me servirebbe sostituire & in &amp;

    insrendo un url nel database con & normalmente mi ferma il testo a &... e il resto lo tralascia.. non capisco xke

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.