Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371

    passaggio a php 5.5: modificatore /e di preg_replace deprecato

    Penso che il titolo dica già molto. Il ho questo codice:

    codice:
    	function removeEvilAttributes($tagSource) {
    		// fai qualcosa
    		return $tagSource;
    	}
    	
    	function AltraFunzione() {
    		// fai qualcos'altro
    		return preg_replace('/<(.*?)>/ie', "'<'.removeEvilAttributes('\\1').'>'", $source);
    	}
    che funziona benissimo.

    Ora, per passare alla versione di php 5.5, devo correggere questo modificatore /e perché non è più accettato.

    Seguendo varie guide trovate su internet, ho provato questa strada, vista qui:
    codice:
    return preg_replace_callback('/<(.*?)>/i', function($m) { return removeEvilAttributes($m[1]); } , $source);
    la cosa strana è che se io inserisco in input
    codice:
    <p>ciao mondo</p>
    , ottengo in output
    codice:
    pciao mondo/p
    Come è possibile? Eppure non ho toccato l'espressione regolare (che cerca tutti i tag o simil tali).

    Qualcuno sa aiutarmi?
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

  2. #2
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Risolto.

    Non mi ero accorto che rimetteva i simboli < e > al risultato.
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

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.