Foros del Web » Programando para Internet » PHP »

Printf

Estas en el tema de Printf en el foro de PHP en Foros del Web. Buenas, estoy usando printf para idiomas. El caso es que necesito que con sprintf('algo %s', 'algo') retorne algo algo. Eso lo hace, pero cuando meto ...
  #1 (permalink)  
Antiguo 10/02/2012, 12:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Printf

Buenas, estoy usando printf para idiomas.

El caso es que necesito que con sprintf('algo %s', 'algo') retorne algo algo. Eso lo hace, pero cuando meto algo %s, algo %s no retorna bien.

¿Por que puede ser? ¿Cómo me recomiendan hacerlo?

Saludos!
__________________
:)
  #2 (permalink)  
Antiguo 10/02/2012, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Printf

No entiendo que te refieres, si muestras el código tal como lo haces sería mejor.

Aunque bueno, revisando el manual:
http://php.net/sprintf

Debes especificar un argumento por cada %s o bien, usar una notación avanzada para no tener que repetir argumentos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/02/2012, 13:05
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Printf

Jaja ahora si no entendi nada puedes explicarte mejor?.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #4 (permalink)  
Antiguo 10/02/2012, 13:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Printf

Para repetir el valor puedes usar:

Código PHP:
Ver original
  1. sprintf('algo %1$s, algo %1$s', 'algo');

En el manual explican eso bien.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 11/02/2012, 07:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Printf

El código es:
Código PHP:
Ver original
  1. <?=sprintf(e("Letras de %s%, Ver letras de %s gratis, Letras gratis de %s, Descargar letras de %s gratis."), $_GET['q'])?>

La función e() es para el idioma. Retorna el valor que corresponde a ese texto en el idioma deseado.
__________________
:)
  #6 (permalink)  
Antiguo 11/02/2012, 09:22
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Printf

Intenta usando la función en el valor $_GET, no en el formato de la cadena y reemplazando las %s por %1$s

aunque yo creo que le estás dando el uso que no es a la función sprintf
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 11/02/2012, 09:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Printf

Cita:
Iniciado por andresdzphp Ver Mensaje
aunque yo creo que le estás dando el uso que no es a la función sprintf
¿Qué función debería usar entonces? probé con sprintf, printf y ninguna hizo nada..
__________________
:)
  #8 (permalink)  
Antiguo 11/02/2012, 09:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Printf

Tu pasas por GET un valor y con la función e traduce esa palabra y la quieres repetir en todo tu string?

Prueba así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo sprintf('Letras de %1$s, Ver letras de %1$s gratis, Letras gratis de %1$s, Descargar letras de %1$s gratis.', e($_GET['q']));

Sino creo que no entendí lo que quieres hacer.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 11/02/2012, 09:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Printf

No, esto es para unos meta tags.

e() le das un valor y devuelve al valor traducido de un array.
a ese valor traducido, tiene los %s y estos deben cambiar por el criterio de búsqueda "$_GET['q']"
__________________
:)
  #10 (permalink)  
Antiguo 11/02/2012, 10:11
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Printf

Ya probaste como te dije?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 11/02/2012, 11:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Printf

si, ya lo probé y no funcionó.. :(
__________________
:)
  #12 (permalink)  
Antiguo 11/02/2012, 11:23
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Printf

Que tal AplicaWeb,

La funcion e te esta devolviendo las cadenas traducidas y los placeholders bien(deberian ser como en el ejemplo andresdzphp) ?, postea lo que te esta devolviendo e.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: printf
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 16:29.