Durante la migrazione a php7.3 alcuni script installati potrebbero smettere di funzionare a causa di una non totale retro compatibilità di alcune funzioni.
preg_replace()
Qualora nel log degli errori di apache dovessero comparire errori del tipo:
1 |
PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /var/www/.../script.php on line ..., referer: ... |
Dobbiamo editare il file php indicato alla riga contenente l’errore e correggerlo. La nuova versione della funzione preg_replace() non è compatibile al 100% con i programmi scritti con le versioni precedenti, in particolare alcuni caratteri del parametro regular expression vanno inseriti preceduti dal carattere di escape.
Esempio:
1 2 3 4 5 |
. . return preg_replace('/[^\w-+#]/msi', '', $id); . . |
Il carattere – contenuto nel primo parametro è la causa dell’errore, pertanto va preceduto da \
1 2 3 4 5 |
. . return preg_replace('/[^\w\-+#]/msi', '', $id); . . |