Error Prestashop Compilation failed invalid range in character class at offset classes/Tools.php on line 980

Un error en el código de Prestashop puede hacer que tu página se venga literalmente abajo. Los errores de código se reflejan en el fichero error_log, y la saturación de éste, puede agotar el espacio de tu cuenta, con la consiguiente caída del servicio. Eso es lo que me ha ocurrido con un error que se producía continuamente en el fichero error_log. El error exactamente era:

PHP Warning:  preg_replace(): Compilation failed: invalid range in character class at offset 24 in /…/classes/Tools.php on line 980

El número de línea puede ser aproximado, dependiendo de la versión de Prestashop que tengas. En mi caso, tengo la versión 1.4.2.5. En cualquier caso, la línea hace referencia al fichero Tools.php, concretamente a las líneas señaladas en rojo (que son las que contienen el error. Hay que editarlas de modo que queden como las líneas en verde. Es decir, añadir un ‘/’ tras un corchete ‘]’. Marco en azul los elementos que se han añadido.

$str = preg_replace(‘/[^a-zA-Z0-9\s\’\:\/\[\]\pL]/u’, , $str);
+ $str = preg_replace(‘/[^a-zA-Z0-9\s\’\:\/\[\]\-\pL]/u’, , $str);
$str = preg_replace(‘/[^a-zA-Z0-9\s\’\:\/\[\]-]/’,, $str);
+ $str = preg_replace(‘/[^a-zA-Z0-9\s\’\:\/\[\]\]/’,, $str);

 

Por tanto, el resultado final de la edición ha de ser como esto:

$str = preg_replace(‘/[^a-zA-Z0-9\s\’\:\/\[\]\-\pL]/u’, ”, $str);
$str = preg_replace(‘/[\s\’\:\/\[\]\-]+/’, ‘ ‘, $str);

 

Con ello, he logrado tener un fichero error_log de 10 gb (si, es impresionante). Fuente del artículo sobre el error Error Prestashop Compilation failed invalid range in character class at offset classes/Tools.php on line 980 localizado en: https://github.com/PrestaShop/PrestaShop/commit/4c6ca7cf12fb73818544e61a05d87ce9fd83919c

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *