Foros del Web » Programando para Internet » PHP »

php dentro de una variable

Estas en el tema de php dentro de una variable en el foro de PHP en Foros del Web. Hola a todos. a ver si logro explicarme. tengo una variable que estoy definiendo, vamos a llamarla prueba: $prueba y la defino así: Código PHP: ...
  #1 (permalink)  
Antiguo 22/09/2008, 08:36
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
php dentro de una variable

Hola a todos. a ver si logro explicarme. tengo una variable que estoy definiendo, vamos a llamarla prueba:

$prueba

y la defino así:

Código PHP:
$prueba =("

<table><tbody><tr><td>Esto es una prueba</td></tr>
<tr><td>$p[nombreprueba</td></tr></tbody></table>

"
); 
donde $p[nombreprueba] es un nombre de una tabla de una base de datos. Todo correcto hasta aquí

Ahora yo quiero meter php dentro de esa variable $prueba de tal modo que lo que quiero crear es un condicional:

Código PHP:
if ($p[nombreprueba] == "Blanco") {
echo 
"hola a todos";
}
else {
echo 
"no hay nada";

pues bien. no soy capaz de meter codigo php dentro de la variable que estoy definiendo. alguna ayuda?
  #2 (permalink)  
Antiguo 22/09/2008, 08:43
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: php dentro de una variable

Prueba así:

Código PHP:
$prueba =(
<table><tbody><tr><td>Esto es una prueba</td></tr> 
<tr><td>{$p[nombreprueba]}</td></tr></tbody></table> 

"
); 
Ojo que en tu código faltó cerrar una llave...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 22/09/2008, 08:47
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: php dentro de una variable

Concatena el string, quiza ese sea el problema:

$prueba =("

<table><tbody><tr><td>Esto es una prueba</td></tr>
<tr><td>".$p['nombreprueba']."</td></tr></tbody></table>

");

tambien acostumbrate a poner los indices de los arrays entre comillas y no es necesario que utilices parentesis para asignar valor a las variables
__________________
My path is lit by my own fire, I only go where I desire
  #4 (permalink)  
Antiguo 22/09/2008, 09:18
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

no no...ya sabía yo que no sabría explicarme. a ver, esto va correctamente:

Código PHP:
$prueba =(

<table><tbody><tr><td>Esto es una prueba</td></tr> 
<tr><td>$p[nombreprueba</td></tr></tbody></table> 

"
); 
ok? todo perfecto. saca el valor de "nombreprueba" de la base de datos. yo lo que quiero ahora es esto:

Código PHP:
$prueba =(

<table><tbody><tr><td>Esto es una prueba</td></tr> 
<tr><td>$p[nombreprueba</td></tr></tbody></table> 

if ($p[nombreprueba] == "
Blanco") { 
echo "
hola a todos"; 

else { 
echo "
no hay nada"; 
}  
"
); 
y ahí es donde no lee nada...todo lo que es el condicional lo ignora...no lo lee...ese código php dentro de la variable no va....como hacer para que vaya?
  #5 (permalink)  
Antiguo 22/09/2008, 09:38
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: php dentro de una variable

Evidentemente no va porque necesitas escapar las comillas y el valor de $. Para ello mejor utiliza comillas simples:
Código PHP:
$codigoPHP 'if($algo) { echo "Hola"; } else { echo "Adios"; }'
Supongo después buscarás la función eval() www.php.net/eval

Es muy raro esto que estás haciendo; es muy probable tengas un error de concepto y haya una --mucho-- mejor manera de hacer lo que sea que pretendas hacer.

Espero te sirva y, si tienes más problemas, podrías explicarte mejor. Ten cuidado en tu redacción.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 22/09/2008, 09:51
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

hola jam1138. tienes razón. disculpame. traté de resumir lo más posible para no liar mucho la cosa. a ver. os cuento detalladamente. utilizo la clase dompdf para crear un pdf a partir de una consulta a la base de datos. el código es bastante sencillo:

Código PHP:
mysql_connect("localhost""root""user");
mysql_select_db ("basededatos");
include_once (
'dompdf/dompdf_config.inc.php');

//definida la conexion a la base de datos e incluido el archivo de configuración de dompdf hago la consulta

function consulta()

    {

    
      
$sql "SELECT * FROM tabla ORDER BY nombre ASC";
     
$result mysql_query($sql) or die (mysql_error());
     return 
$result;  

    }
$result consulta();

$p mysql_num_rows($result);    

while(
$p mysql_fetch_array($result)) 
 
    {
// ———– Texto Html almacenado en la variable $html —————–
//y ahora defino la variable $html que es el contenido que tendrá el pdf

$html =("
<table class='datospto'>
 <tbody>
 <tr><td colspan=2 class='principal'>Ficha de PDF</td></tr>    
 <tr>
 <td class='datcl'>Número de Ficha</td>
 <td class='datclres'>$p[id_ficha]</td>
 </tr>
</table>
//hasta aquí todo correcto. extrae los datos de la base de datos pero si yo ahora quiero meter un condicional como el anterior para que según el valor sea A o B muestre una cosa u otra no hay forma, no lo lee...

//finalizado cerramos todo e imprimmos el pdf

"
);                   


// ———– Texto Html —————–
  
/*creamos un nuevo objeto */
$dompdf = new DOMPDF();
/*Con el método "load_html" cargamos nuestro código HTML */
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("ficha.pdf");} 
esa es la historia. como meto dentro de la variable $html por ejemplo una condición para que muestre una cosa u otra...
  #7 (permalink)  
Antiguo 22/09/2008, 10:08
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: php dentro de una variable

No te sirvió lo que te dijo jam1138, estibaliz2006??

Y por qué en lugar de hacer un if de esa manera, no lo haces como "normalmente" se hace??
Código PHP:
if($p['nombreprueba']=="Blanco")
$texto="Es blanco";
else
$texto="No es blanco";
$prueba =("
<table><tbody><tr><td>Esto es una prueba</td></tr>  
<tr><td>$texto</td></tr></tbody></table>  
"
); 
No??

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 22/09/2008 a las 13:05 Razón: No había escrito bien $p['nombreprueba'], antes estaba $p[''nombreprueba]
  #8 (permalink)  
Antiguo 22/09/2008, 10:27
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

no....algo va mal...a ver....supongamos lo siguiente. uno de los campos de la tabla es 'imagen' donde recojo la ruta en la que se guardan las imágenes en el servidor. redimensiono la imagen con un pequeño archivo: mini.php de tal modo que para redimensionar la imagen digo lo siguiente:

<img src='mini.php?img=$p[imagen]&alto=140&ancho=140' border=0>

Bien. esto a lo largo de toda la web va bien. pero si lo meto en el pdf anterior no me localiza la imagen, es decir, no lee mini.php?....y todo lo demás....

respecto al condicional, pues nada,...tampoco
  #9 (permalink)  
Antiguo 22/09/2008, 13:08
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: php dentro de una variable

Me había equivocado en el código... mira si ya te sirve...

Si aún así no sirve... pues entonces es problema de la librería, quizás así no se utilice el llamado de las imágenes. Dices que en las demás páginas te sirve... entonces documéntate mejor sobre lo que intentas hacer...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 23/09/2008, 01:52
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

a ver si me aclaro yo un poco explicando el tema porque no hay forma de ponerlo en pie. a ver. yo tengo una tabla en una base de datos con supongamos tres campos:

idproducto-----autonumerico
imagen---------ruta de la imagen en el servidor
disponible-----estado del producto

bien. ahora después de una consulta a la base de datos trato de imprimir esa consulta en pdf. para ello utilizo dompdf. el archivo del pdf es este:

Código PHP:
<?php 
mysql_connect
("localhost""user""pass");
mysql_select_db ("basededatos");
include_once (
'dompdf/dompdf_config.inc.php');

//hemos incluido el archivo de configuración del dompdf y conectado a la base de datos

//------Listar Producto -----------------------------------------------------------------------

function listar()

    {

     
$sql "SELECT * FROM tabla ORDER BY idproducto ASC";
     
$result mysql_query($sql) or die (mysql_error());
     return 
$result;  

    }





$result listar();

$p mysql_num_rows($result);    


while(
$p mysql_fetch_array($result)) 
 
    {
    
// ———– Almacenamos el texto que va a llever el pdf en la variable $html. ¡¡¡Atención porque este texto llevará el condicional y la imagen del producto que es lo que no va!!! —————–
$html =("

<html><head><title>Prueba 2</title>
</head><body>
<br><br>
<table>
 <tbody>
 <tr><td colspan=2 >Ficha de Producto</td></tr>    
 <tr>
 <td>Id de Producto</td>
 <td>$p[idproducto]</td>
 </tr>
///Hasta aquí todo perfecto. rescata de la tabla el idproducto correspondiente. ahora vamos con los problemas. el primero: el mostrar la imagen. la imagen la muestro redimensionada utilizando para ello un archivo llamado mini.php al cual le paso los valores de alto y ancho de la imagen. vamos que en definitiva, para mostrar la imagen redimensionada aquí sería esto (en principio):
 <tr>
 <td>Imagen del producto</td>
 <td><img src='mini.php?img=$p[imagen]&alto=140&ancho=140'></td>
 </tr>
//el problema es que no saca la imagen. sin embargo si pongo sólamente esto:
 <tr>
 <td>Imagen del producto</td>
 <td><img src=$p[imagen></td>
 </tr>
//la muestra pero claro, todo lo grande que es ella y no redimensionada
//ese es un problema el otro: utilizar un condicional: yo quiero que si el valor del campo disponible es 1 entonces muestre Disponible y si es 2 que muestre No disponible. para ello utilizo esto:
 <tr>
 <td>Disponibilidad</td>
 <td>if ($p[disponibilidad) == '1') {
echo "
disponible";}
else {
echo "
no disponible";}</td>
 </tr>
//bueno como podéis imaginar tampoco funciona....
  </tbody></table>"
);                   


// ———– Texto Html —————–
  
/*creamos un nuevo objeto */
$dompdf = new DOMPDF();
/*Con el método "load_html" cargamos nuestro código HTML */
$dompdf->load_html($html);
ini_set("memory_limit","32M");
$dompdf->render();
$dompdf->stream("ficha.pdf");}
?>
pues esa es la historia. alguna idea o ayuda para la solución? las aportadas hasta ahora no han funcionado

Última edición por estibaliz2006; 23/09/2008 a las 01:58
  #11 (permalink)  
Antiguo 23/09/2008, 05:15
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

alguna idea?
  #12 (permalink)  
Antiguo 23/09/2008, 09:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: php dentro de una variable

Hola estibaliz2006,

Debes de hacer lo que ya te propuso jam1138 y Carxl, primero comparas los valores y posteriormente armas el string, ya que de la forma que lo haces nunca va a funcionar, primero debes de hacer el if.

Por otro lado lo de la miniatura tampoco es posible hacerlo asi, necesitas primero redimensionar la imagen y guardarla en el servidor y posteriormente agregarla a tu PDF para que salga redimencionada.

Saludos.
  #13 (permalink)  
Antiguo 23/09/2008, 11:52
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: php dentro de una variable

hola GatorV. esa posibilidad del if ya la probé y nada...no iba...volveré a intentarlo. respecto a la imagen, no te entiendo. como redimensiono la imagen y la guardo en el servidor antes de eso?
  #14 (permalink)  
Antiguo 23/09/2008, 18:33
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: php dentro de una variable

Sobre el condicional. No es posible ejecutar código PHP "incrustado" dentro de una variable (A menos que uses eval(), como ya te mencionaron más arriba, pero te lías mucho con eso). Hay formas de simplificar el proceso:

Código PHP:
// ———– Almacenamos el texto que va a llever el pdf en la variable $html. ¡¡¡Atención porque este texto llevará el condicional y la imagen del producto que es lo que no va!!! —————– 
$html =(

.........................................

 <tr>
 <td>Disponibilidad</td> 
 <td>"
.($p['disponibilidad'] == '1' "disponible" "no disponible")."</td> 
 </tr> 

.........................................
"
); 
Más información sobre el uso de la sintaxis a ? b : c en este mensaje

Ahora, con respecto a la redimensión de imagenes, tendríamos que ver el archivo mini.php para saber quñe tendrías que hacer para que se guarde la imagen en el servidor.

Saludos,
  #15 (permalink)  
Antiguo 24/09/2008, 00:55
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Hola. Bueno. ya se va viendo un poquito la luz en todo este lio. gracias a todos por vuestra impagable ayuda.

bueno. el tema de como redimensiono yo la imagen. os cuento. como os dije hago un enlace al archivo mini.php donde le paso los valores de alto y ancho a la que la quiero redimensionar. por ejemplo:

<img src='mini.php?img=$p[imagen]&alto=80&ancho=80'>

donde el campo imagen es la ruta de la imagen en el servidor. en este caso me la redimensiona a ese tamaño que le paso. hasta aquí todo va de miedo. el problema es tratar de mostrar esa imagen redimensionada en el pdf. decía GatorV que para eso primero habría que redimensionar la imagen y almacenarla en el servidor redimensionada y después agregarla al PDF para que salga redimensionada. pero como hago eso?

el archivo mini.php tiene este código:

Código PHP:
    $extension=strrchr($_REQUEST['img'],".");
    if (
$extension==".jpg"$imgcache=imagecreatefromjpeg($_REQUEST['img']);
    elseif (
$extension==".JPG"$imgcache=imagecreatefromjpeg($_REQUEST['img']);
    elseif (
$extension==".gif"$imgcache=imagecreatefromgif($_REQUEST['img']);
    else 
$imgcache=imagecreatefrompng($_REQUEST['img']);
    
    
$ancho=imagesx($imgcache);
    
$alto=imagesy ($imgcache);

    if (
$ancho>100$nuevo_ancho=$_REQUEST['ancho'];
    else 
$nuevo_ancho=$ancho;
    
    
$nuevo_alto=($nuevo_ancho*$alto)/$ancho;    
    
    if (
$nuevo_alto>100$nuevo_alto=$_REQUEST['alto'];
    
    
$nuevo_ancho=($nuevo_alto*$ancho)/$alto;
    

    
$imgmini=imagecreatetruecolor($nuevo_ancho,$nuevo_alto);
    
imagecopyresampled($imgmini,$imgcache,0,0,0,0,$nuevo_ancho,$nuevo_alto,imagesx($imgcache),imagesy ($imgcache));

    if (
$extension==".jpg"imagejpeg($imgmini);
    elseif (
$extension==".JPG"imagejpeg($imgmini);
    elseif (
$extension==".gif"imagegif($imgmini);
    else 
imagepng($imgmini);

    
imagedestroy ($imgmini);
    
imagedestroy ($imgcache); 
Espero vuestra ayuda. gracias otra vez...

alguna idea?

nada...por mas que trato de solucionar el problema de la imagen nada....

Última edición por GatorV; 24/09/2008 a las 08:31
  #16 (permalink)  
Antiguo 24/09/2008, 08:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: php dentro de una variable

Hola estibaliz2006,

Revisa el Manual de PHP, las funciones imagejpg, imagepng, imagegif, aceptan como segundo parámetro el archivo a donde quieras que se guarde la imagen.

Saludos.
  #17 (permalink)  
Antiguo 23/09/2012, 10:02
Avatar de Masterphp  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/php/
Mensajes: 94
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: php dentro de una variable

Hola no se genera por que estas poniendo echo dentro de un variable esta linea:
Código PHP:
Ver original
  1. <tr>
  2.  <td>Disponibilidad</td>
  3.  <td>if ($p[disponibilidad) == '1') {
  4. echo "disponible";}
  5. else {
  6. echo "no disponible";}</td>
  7.  </tr>
cambia a esta:
revisa antes de variable $html con

Código PHP:
Ver original
  1. if ($p['disponibilidad') == '1') {
  2. $disponible = "disponible";}
  3. else {
  4. $disponible = "no disponible";}
como vez ahora reemplazas el codigo anterior con esta:
Código PHP:
Ver original
  1. <tr>
  2.  <td>Disponibilidad</td>
  3.  <td>".$disponible."</td>
  4.  </tr>
listo cualquier duda me avisas por mensaje.

Última edición por Masterphp; 23/09/2012 a las 10:04 Razón: Ortografia
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 05:43.