Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    str_replace con eccezioni...

    Ho necessità di sostituire tutti gli & con & e pensato di utilizzare $value = str_replace("&", "&", $value);

    Il problema è che cosi facendo mi sostituisce le & che son già dei codici html... cioè se io in $value ho
    codice:
     l'apostrofo
    utilizzando la funzione mi diventa
    codice:
    l''apostrofo
    e ovviamente non mi va bene...

    come faccio a sostituire solo le & che NON sono codici html? o magari meglio ancora come faccio a sostituire solo quelle che fan parte di un link...

    grassie

  2. #2
    prova cosi:
    $sostituisci="&";
    $value=str_replace("&","$sostituisci","$valore")

  3. #3
    è quello che faccio io... il problema è che io non vorrei farlo su tutte le & ma solo su quelle che sono nell'indirizzo dentro ad href=''

  4. #4
    $value=str_replace("&","&amp",$link)

  5. #5
    hai risolto?

  6. #6
    no... hai scritto 2 cose che sono equivalenti tra loro e che sono la stessa cosa che faccio io

  7. #7
    nessuno combinando espressioni regolai (credo) e funzioni sa come sostituire con il relativo codice solo le & che fan parte di url?


  8. #8
    scusa mi potresti postare tutto il tuo codice, o parte di esso?

  9. #9
    il codice è abbastanza irrilevante in quanto questa funzione non mi serve in una situazione precisa ma in tutte le pagine perchè per validare una pagina in xhtml un link non dev'essere
    codice:
    index.php?var1=5&var2=3
    ma
    codice:
    index.php?var1=5&var2=3
    cioè i link NON devono contenere la & ma &

    quindi io salvo tutto l'output della pagina in una variabile (tutto tutto... da quando dichiaro il tipo di pagina a quando chiudo il tag </html>) e poi lo processo con la funzione
    codice:
    str_replace("&", "&amp;amp;", $codice);
    il problema è che cosi facendo se io nella mia pagina ho ad esempio questo link

    dopo averlo processato con la funzione di cui sopra mi diventa
    perchè l'apostrofo ha come codice html &amp;#039; e quindi la funzione trasforma anche la e commerciale del codice dell'apostrofo in &amp;amp; sputtanandomi l'ouput..

    capito il problema?

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi fare cosi

    codice:
    <? 
    $value = "&pippo l&#039;apostrofo";
    $value = str_replace("&#","###########",$value);
    $value = str_replace("&","&amp",$value);
    $value = str_replace("###########","&#",$value);
    print $value;
    ?>

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.