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

    Preg replace in preg replace callback

    Salve,
    scusate gentilmente come posso modificare il seguente codice della funzione preg_replace (deprecata in PHP 5.6):
    codice:
            $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
    con preg_replace_callback ?

    Grazie
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    preg_replace deprecata ?

    preg_replace

    (PHP 4, PHP 5, PHP 7)
    preg_replace — Perform a regular expression search and replace
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Dagli errori mi dava quel tipo di messaggio.

    Ora comunque ho provato così:
    Codice:
    $encoded = preg_replace_callback( "/([\000-\011\013\014\016-\037\075\077\137\177-\377])/", function($m) { return "'='" . sprintf('%02X', ord( $m[1] )) ; }, $encoded);

    Ma ora mi da il seguente errore:
    WARNING: preg_replace_callback(): Null byte in regex

    Come risolvere?

    Grazie
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da badaze Visualizza il messaggio
    preg_replace deprecata ?
    E' il modificatore /e che è stato deprecato nell'uso con preg_replace() non è la funzione in sé ad essere deprecata.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da Alexander Visualizza il messaggio
    Dagli errori mi dava quel tipo di messaggio.

    Ora comunque ho provato così:
    Codice:
    $encoded = preg_replace_callback( "/([\000-\011\013\014\016-\037\075\077\137\177-\377])/", function($m) { return "'='" . sprintf('%02X', ord( $m[1] )) ; }, $encoded);

    Ma ora mi da il seguente errore:
    WARNING: preg_replace_callback(): Null byte in regex

    Come risolvere?

    Grazie
    Posta piuttosto il codice con preg_replace.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Problema risolto in questo modo:
    $encoded = preg_replace_callback('/([\000-\011\013\014\016-\037\075\077#​\137\177-\377])\/and#​/', function($m) { return '='. sprintf('%02X', ord($m[1])); }, $encoded);
    break;
    A presto
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

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.