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:
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:
. . return preg_replace('/[^\w-+#]/msi', '', $id); . .
Il carattere – contenuto nel primo parametro è la causa dell’errore, pertanto va preceduto da \
. . return preg_replace('/[^\w\-+#]/msi', '', $id); . .