Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear formatos para luego darle valores.

Estas en el tema de Crear formatos para luego darle valores. en el foro de PHP en Foros del Web. Buenas, tengo la siguiente duda, si yo creo un formato y los almaceno en un array, por ejemplo para mostrar el nombre en un formato ...
  #1 (permalink)  
Antiguo 11/09/2015, 12:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 148
Antigüedad: 18 años, 10 meses
Puntos: 0
Crear formatos para luego darle valores.

Buenas, tengo la siguiente duda, si yo creo un formato y los almaceno en un array, por ejemplo para mostrar el nombre en un formato seria:

"Tu nombre es: $nombre $apellido"

y en otro formato caso:
"Tu nombre es: $apellido $nombre";

estos formatos son realizados en un archivo, para luego ser llamados y asignarles los valores a $nombre y $apellido.

El problema es que me sale en blanco, supongo que es porque llama a la variable desde donde hago el formato y no después.

Mi pregunta es, como puedo llamar a esos formatos para luego asignarles los valores y mostrarlo en pantalla.


Muchas gracias.
  #2 (permalink)  
Antiguo 11/09/2015, 12:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Crear formatos para luego darle valores.

Cita:
El problema es que me sale en blanco, supongo que es porque llama a la variable desde donde hago el formato y no después.
Exacto, ese sería el problema.

Cita:
Mi pregunta es, como puedo llamar a esos formatos para luego asignarles los valores y mostrarlo en pantalla.
Podrías tener dichos formatos como funciones, y sólo tendrías que darle argumentos para que funcionen como esperas:
Código PHP:
Ver original
  1. function formato1($nombre, $apellido) {
  2.   return  "Tu nombre es: $nombre $apellido";
  3. }
  4.  
  5. function formato2($apellido, $nombre) {
  6.   return  "Tu nombre es: $apellido $nombre";
  7. }

Y así los usarías:
Código PHP:
Ver original
  1. echo formato2('Doe', 'John'); // Tu nombre es: Doe John
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/09/2015, 12:38
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 6 meses
Puntos: 263
Respuesta: Crear formatos para luego darle valores.

si estas dentro de php debes colocarlos asi:

Código PHP:
Ver original
  1. "Tu nombre es: ".$apellido." ".$nombre.;
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 11/09/2015, 12:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Crear formatos para luego darle valores.

xfxstudios, cuando usas comillas dobles no es necesario concatenar variables, perfectamente puedes incluirlas dentro de la cadena, ya que PHP las interpretará y reemplazará por los valores correspondientes, excepto en el caso expuesto por Yrnving, donde crea la cadena sin haber declarado previamente las variables.

Entonces, una de las opciones es la sugerida por pateketrueke; otra podría ser sprintf(), aunque depende de las necesidades o gustos del usuario.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 11/09/2015, 12:56
 
Fecha de Ingreso: febrero-2006
Mensajes: 148
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Crear formatos para luego darle valores.

Muchas gracias por la pronta respuesta, pero intento no hacerlo en funciones, estoy tratando de ver como hacerlo aquí pongo un ejemplo mas especifico:

Donde creo los formatos:
es.php
Código PHP:
Ver original
  1. //es.php
  2. $FORMAT=array(
  3.     'showName'=>"Tu nombre es: $name $lastName",
  4.     'showDate'=>"$DD-$MM-$YY",
  5. )
  6. function FORMAT($sector,$values){
  7.     global $LAN;
  8.     global $FORMAT;
  9.     $text=$FORMAT[$sector];
  10.     foreach($values as $key=>$value){
  11.         $$key=$value;  
  12.     }
  13.     echo $text;
  14. }

donde llamo el formato y doy los valores:
index.php
Código PHP:
Ver original
  1. $values=array(
  2.     'name'=>'Roberto',
  3.     'lastName'=>'Machado'
  4. );
  5. $dates=array(
  6.     'DD'=>date('d'),
  7.     'MM'=>date('m'),
  8.     'YY'=>date('y'),
  9. );
  10. echo FORMAT('showName',$values).'<br/>';
  11. echo FORMAT('showDate',$dates);

espero explicarme un poco mejor, solo estoy buscando maneras de hacer esto que sea sencillo y no consuma tanto recursos y a su vez sea fácil de agregar formatos.

Muchas gracias.
  #6 (permalink)  
Antiguo 11/09/2015, 13:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Crear formatos para luego darle valores.

Como mencionaba en el mensaje anterior, estás tratando de usar variables que aún no has definido y por eso es que nombre y apellido quedan en blanco. Entonces, lo más sencillo sería usar sprintf() y te evitas el foreach().
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 11/09/2015, 13:12
 
Fecha de Ingreso: febrero-2006
Mensajes: 148
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Crear formatos para luego darle valores.

Muchas gracias por la pronta repuesta Triby, no había visto tu comentario antes de enviar el 2do mensaje.

Ya solucione el problema, muestro como funciona:

es.php
Código PHP:
Ver original
  1. $FORMAT=array(
  2.     'showName'=>"Tu nombre es: %name %lastName",
  3.     'showDate'=>"$DD-$MM-$YY",
  4. )
  5. //FUNCION EXTRAÍDA DE http://php.net/manual/es/function.sprintf.php  "#9 matt"
  6. function sprintf2($str='', $vars=array(), $char='%')
  7. {
  8.     if (!$str) return '';
  9.     if (count($vars) > 0)
  10.     {
  11.         foreach ($vars as $k => $v)
  12.         {
  13.             $str = str_replace($char . $k, $v, $str);
  14.         }
  15.     }
  16.  
  17.     return $str;
  18. }

index.php
Código PHP:
Ver original
  1. $values=array(
  2.     'name'=>'Roberto',
  3.     'lastName'=>'Machado'
  4. );
  5. echo sprintf2($FORMAT['showName'],$values).'<br/>';

Muchas gracias.

Etiquetas: darle, formatos, variable
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 13:09.