Foros del Web » Programando para Internet » PHP »

No me funciona con arrays la funcion eval()(Solucionado)

Estas en el tema de No me funciona con arrays la funcion eval()(Solucionado) en el foro de PHP en Foros del Web. Tengo un string que contiene un array y quiero que se ejecute mediante eval. Pero sale el siguien error: Cita: Parse error: syntax error, unexpected ...
  #1 (permalink)  
Antiguo 02/01/2008, 18:56
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 18 años, 5 meses
Puntos: 2
No me funciona con arrays la funcion eval()(Solucionado)

Tengo un string que contiene un array y quiero que se ejecute mediante eval. Pero sale el siguien error:
Cita:
Parse error: syntax error, unexpected T_STRING in G:\Servidor-FTP\Servidor-Web\proyectos\gratuito\IDkinformatica[2.0]\index.php(120) : eval()'d code on line 1

Código PHP:

$aMenuPrincipal
[0]["TITULOMODULO"] = 'prueba';

$cad '$aMenuPrincipal[0]["TITULOMODULO"]';

eval ( 
"\$cad = \"$cad\";" );

// Debería aparecer prueba...
echo $cad

A ver que me podeis aconsejar por que no puedo hacerlo funcionar....

Un saludo!

Última edición por keldrox; 03/01/2008 a las 03:22
  #2 (permalink)  
Antiguo 02/01/2008, 19:09
 
Fecha de Ingreso: enero-2008
Ubicación: santo domingo
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo Re: No me funciona con arrays la funcion eval()

Sugiero que visites las librerias Array en http://www.php.net

Saludos, manuel.

<html>script type='text/javascript'><!--
e9 = new Object();
e9.size = '728x90,468x60';
//--><script type='text/javascript'><!--
google_ad_client = 'pub-4647581011655390';
//banner de arriba
google_ad_slot = '0616989939';
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type='text/javascript'
src='http://pagead2.googlesyndication.com/pagead/show_ads.js'>
</script></html>
  #3 (permalink)  
Antiguo 02/01/2008, 19:09
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 20
Re: No me funciona con arrays la funcion eval()

Código PHP:
<?php
$aMenuPrincipal
[0]["TITULOMODULO"] = 'prueba';

$cad $aMenuPrincipal[0]["TITULOMODULO"];

eval ( 
"\$cad = \"$cad\";" );

// Debería aparecer prueba...
echo $cad
?>
...

Código PHP:
<?php
$aMenuPrincipal
[0]["TITULOMODULO"] = 'prueba';

$str $aMenuPrincipal[0]["TITULOMODULO"];

$cad '$str';

eval ( 
"\$cad = \"$cad\";" );

// Debería aparecer prueba...
echo $cad
?>
...

Código PHP:
<?php
$aMenuPrincipal
[0]["TITULOMODULO"] = 'prueba';

$cad '$aMenuPrincipal[0]["TITULOMODULO"]';

eval ( 
"\$cad = $cad;" );

// Debería aparecer prueba...
echo $cad
?>
Saludos bulter

Última edición por bulter; 02/01/2008 a las 19:15
  #4 (permalink)  
Antiguo 02/01/2008, 19:18
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: No me funciona con arrays la funcion eval()

Bueno voy a intentar explicar mejor lo que quiero:


Yo recibo desde la base de datos este string.

inicio/$aMenuPrincipal[0]['TITULOMODULO']/$aMenuPrincipal[0]['IDMODULO']


Quiero que lo interprete php, pero con eval no me funciona por culpa de los array o eso creo.


Un saludo y gracias por vuestras respuestas.

Código PHP:
$aMenuPrincipal[0]["TITULOMODULO"] = 'prueba';
$aMenuPrincipal[0]["IDMODULO"] = '1';

$cad 'inicio/$aMenuPrincipal[0]["TITULOMODULO"]/$aMenuPrincipal[0]["IDMODULO"]';

eval ( 
"\$cad = $cad\";" );
// Debería aparecer inicio/prueba/1
echo $cad
  #5 (permalink)  
Antiguo 02/01/2008, 19:22
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: No me funciona con arrays la funcion eval()

prueba escapando las comillas
Código PHP:
$cad '$aMenuPrincipal[0][\"TITULOMODULO\"]'
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 02/01/2008, 19:29
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: No me funciona con arrays la funcion eval()

Escapando las comillas tampoco funciona.... ¿Alguna idea más?, por que no me puedo ir a la cama hasta que no lo haga


Saludos!
  #7 (permalink)  
Antiguo 02/01/2008, 19:51
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
Re: No me funciona con arrays la funcion eval()

Código PHP:
$aMenuPrincipal[0]["TITULOMODULO"] = 'prueba';

$cad '$aMenuPrincipal[0]["TITULOMODULO"]';

eval ( 
"\$cad = \"$cad\";" );

// Debería aparecer prueba...
echo $cad;  


$cad '$aMenuPrincipal[0]["TITULOMODULO"]';

//prueba con esto
$cad2="\$aMenuprincipal[0][\"TITULOMODULO\"]";

/****************/ 
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"

Última edición por vevni; 02/01/2008 a las 20:56
  #8 (permalink)  
Antiguo 02/01/2008, 20:11
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 20
Re: No me funciona con arrays la funcion eval()

Código PHP:
<?php
$aMenuPrincipal
[0]["TITULOMODULO"] = 'prueba';
$aMenuPrincipal[0]["IDMODULO"] = '1'

$cad 'inicio/'.$aMenuPrincipal[0]["TITULOMODULO"].'/'.$aMenuPrincipal[0]["IDMODULO"];

eval(
"\$cad = \"$cad\";");

// Debería aparecer prueba...
echo $cad
?>
Aqui es igual si el eval() esta o no pero funcciona. eval + multi array == WTF

Saludos bulter
  #9 (permalink)  
Antiguo 02/01/2008, 21:25
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 2
Re: No me funciona con arrays la funcion eval()

Hola, hice varias pruebas y el que funcionó es este:

Código PHP:
<?php

$cad 
'inicio/$aMenuPrincipal[0]["TITULOMODULO"]/$aMenuPrincipal[0]["IDMODULO"]';
$cad explode("/"$cad);

$
$cad[1] = 'prueba';
$
$cad[2] = '1';
echo 
$cad[0]."/".$$cad[1]."/".$$cad[2];

?>
Ahora, veamos algunas cosas, para imprimir el valor de un array debes hacer esto:

Código PHP:
echo $aMenuPrincipal[0]["TITULOMODULO"]; 
ó debes encerrar entre comillas dobles y llaves el array, así:

Código PHP:
echo "{$aMenuPrincipal[0]["TITULOMODULO"]}"
tu linea de eval(), es como si pusieras:

Código PHP:
//esto
eval ( "\$cad = \$cad;" ); 

//es equivalente a poner esto

$cad $cad;

// o esto

$cad 'inicio/$aMenuPrincipal[0]["TITULOMODULO"]/$aMenuPrincipal[0]["IDMODULO"]'
Lo cual, al imprimirlo simplemente nos arrojaría: inicio/$aMenuPrincipal[0]["TITULOMODULO"]/$aMenuPrincipal[0]["IDMODULO"]

Lo que le falta son las llaves para que en lugar de imrpimir $aMenuPrincipal[0]["TITULOMODULO"], imprima el valor de dicho arreglo.

Uso doble signo de dolar, para eso ve esta documentación http://es2.php.net/manual/es/languag...s.variable.php

Espero haber sido de ayuda, nos vemos!
  #10 (permalink)  
Antiguo 03/01/2008, 03:21
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: No me funciona con arrays la funcion eval()

Efectivamente los arrays ahí que ponerlos entre llaves y funciona a la perfección.

Código PHP:
inicio/{$aMenuPrincipal[$cont]["TITULOMODULO"]}/{$aMenuPrincipal[$cont]["IDMODULO"]} 
Ahora sí!, muchisimas gracias a todos.

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:19.