PHP - Problema con comando php

 
Vista:
Imágen de perfil de Matias Oqui
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias Oqui (7 intervenciones) el 21/12/2020 22:54:55
Buenos dias:

ante todo perdon por molestar.. yo programe mi web para usar php 5 pero actualice la version de php a 7 y me da error esta funcion:

1
2
3
4
5
function parsetemplate ( $template , $array ) {
 
    return preg_replace ( '#\{([a-z0-9\-_]*?)\}#Ssie' , '( ( isset($array[\'\1\']) ) ? $array[\'\1\'] : \'\' );' , $template );
 
}

probe con preg_replace_callback pero no funciona con esos parametros.. alguien me puede ayudar a compatibilizar esa funcion??

de ante mano muchas gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por joel (1269 intervenciones) el 22/12/2020 07:38:56
Hola Matias, no se muy bien que parametros recibe la función, ni que error te da, pero yo lo haría así:
1
return preg_replace('#\{([a-z0-9\-_]*?)\}#Ssie', (isset($array[1]) ? $array[1] : ''), $template);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Mauro (1032 intervenciones) el 22/12/2020 13:27:12
¿Qué error estás viendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Matias
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias (7 intervenciones) el 22/12/2020 21:01:23
el error es que no puedo usar justamente esa funcion.. porque php7 ya no la admite..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por joel (1269 intervenciones) el 23/12/2020 11:16:05
Si la admite... preg_replace() funciona correctamente en php7!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Mauro (1032 intervenciones) el 23/12/2020 15:14:11
¿Qué te hace pensar que php 7 no admite la función? ¿Qué mensaje de error estás viendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Matias
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias (7 intervenciones) el 23/12/2020 19:50:24
el mismo codigo funcionando con php5, con php7 o php8 no funciona.. este es el error (http://synergo-si.sytes.net/)..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Mauro (1032 intervenciones) el 23/12/2020 20:49:16
Fíjate que el error dice esto:

1
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in C:\xampp\htdocs\synergo-si.sytes.net\includes\functions.php on line 27

Es decir, no es la función preg_replace la que no está soportada, si no el modificador /e. Eso significa que el problema está en tu expresión regular.

¿Cómo es la expresión que usas?

Por otro lado, también te está sugiriendo usar preg_replace_callback en su lugar.

De paso, no es una muy buena idea dejar que el php muestre los errores en un entorno productivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por joel (1269 intervenciones) el 23/12/2020 20:50:45
El warning que te da es de la expresion regular, no de la funcion...
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in C:\xampp\htdocs\synergo-si.sytes.net\includes\functions.php on line 27

El problema es que la 'e' (PREG_REPLACE_EVAL) ha sido eliminada en php 7 (This feature was DEPRECATED in PHP 5.5.0, and REMOVED as of PHP 7.0.0)

lo que hacia era evaluar la cadena... pero como yo te lo mostre, sin las comillas, simplemente elimina la "e" en la expresión regular... así:
1
return preg_replace('#\{([a-z0-9\-_]*?)\}#Ssi', (isset($array[1]) ? $array[1] : ''), $template);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Matias
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias (7 intervenciones) el 24/12/2020 00:44:30
perfecto.. el error desaparecio.. pero no me devuelve nada la funcion.. no traslada el contenido..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por joel (1269 intervenciones) el 24/12/2020 08:42:12
Que valores tienen las variables: $template y $array ?
y que valor de retorno tendría que devolver la funcion ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Matias
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias (7 intervenciones) el 26/12/2020 15:23:52
el valor de $tempalte es otra funcion.. mira ahi te dejo el script para que lo puedas ver bien y lo puedas entender..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Matias
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con comando php

Publicado por Matias (7 intervenciones) el 29/12/2020 17:25:02
por ejemplo yo en la clase defino un array parse con un valor y con un contendio

1
$parse['year'] = date('Y');

luego en el template pongo el valor del array parse entre corchetes ( { } ) asi

1
{year}

el resultado final deberia ser el valor de date que seria el año.. deberia mostrar directamente 2020.. eso es un caso sencillo.. pero de esa manera puedo pasar de un lado a otro valores para que en la clase se procese toda la informacion y en el template se muestre solo el resultado..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar