Foros del Web » Programando para Internet » PHP »

Isertar 3 espacios continuos en una cadena

Estas en el tema de Isertar 3 espacios continuos en una cadena en el foro de PHP en Foros del Web. Tengo una cadena que puede tener 1 a 6 caracteres de longitud, deseo ajustar la cadena que siempre tenga 7 caracteres. $original= "abc"; $resultado= $original ...
  #1 (permalink)  
Antiguo 06/09/2010, 16:58
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Isertar 3 espacios continuos en una cadena

Tengo una cadena que puede tener 1 a 6 caracteres de longitud, deseo ajustar la cadena que siempre tenga 7 caracteres.

$original= "abc";
$resultado= $original . "   " . $original;

echo $resultado;
Obtengo: "abc abc" lo cual es correcto (9 caracteres)

echo substr($resultado,0,7)
Obtengo: "abc&nbs" Lo cual no es lo que deseo obtener, ya que no muestra los espacios.

¿Alguna sugerencia?

Quizá deba contar los caracteres de la cadena original y agregar justo los espacios, pero deseo hacerlo con alguna instrucción PHP directa.

Gracias
  #2 (permalink)  
Antiguo 06/09/2010, 17:09
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Isertar 3 espacios continuos en una cadena

Quizá str_pad te sirva para que lo deseas hacer.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 06/09/2010, 17:16
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
Respuesta: Isertar 3 espacios continuos en una cadena

no se como para que te vaya a servir pero aqui tienes una solución
Código PHP:
Ver original
  1. $original= "abc";
  2. $resultado= $original.'   '.$original;
  3.  
  4. echo $resultado.'<br />';
  5. Obtengo: "abc abc" lo cual es correcto (9 caracteres)
  6.  
  7. echo str_replace(' ','&nbsp;',substr(str_replace('&nbsp;',' ',$resultado),0,7));
  8. Obtengo: "abc a".
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.

Última edición por eits; 06/09/2010 a las 17:22
  #4 (permalink)  
Antiguo 06/09/2010, 18:05
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por spider_boy Ver Mensaje
Quizá str_pad te sirva para que lo deseas hacer.
No resuelve nada, da el mismo resultado. El problema radica con el substr ya que considera el espacio asignado con: &nbsp; como si fueran 6 caracteres y no como un espacio.

Gracias de todas formas
  #5 (permalink)  
Antiguo 06/09/2010, 18:07
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por eits Ver Mensaje
no se como para que te vaya a servir pero aqui tienes una solución
Código PHP:
Ver original
  1. $original= "abc";
  2. $resultado= $original.'&nbsp;&nbsp;&nbsp;'.$original;
  3.  
  4. echo $resultado.'<br />';
  5. Obtengo: "abc abc" lo cual es correcto (9 caracteres)
  6.  
  7. echo str_replace(' ','&nbsp;',substr(str_replace('&nbsp;',' ',$resultado),0,7));
  8. Obtengo: "abc a".
saludos.
Es incorrecto tu resultado, ya que solo obtienes un espacio, cuando deberían ser 3 espacios juntos.

Gracias de todas formas
  #6 (permalink)  
Antiguo 06/09/2010, 18:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Isertar 3 espacios continuos en una cadena

bueno, hay que usar el sentido común....

un &nbsp; es un espacio solo existente en HTML, y obviamente solo lo puede interpretar un navegador y no PHP...

un espacio en PHP ya lo conoces, y debes saber usarlo... ¿cual es el problema?

Cita:
Iniciado por Bier Ver Mensaje
Es incorrecto tu resultado, ya que solo obtienes un espacio, cuando deberían ser 3 espacios juntos.

Gracias de todas formas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/09/2010, 18:14
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por pateketrueke Ver Mensaje
bueno, hay que usar el sentido común....

un &nbsp; es un espacio solo existente en HTML, y obviamente solo lo puede interpretar un navegador y no PHP...

un espacio en PHP ya lo conoces, y debes saber usarlo... ¿cual es el problema?



Requiero obtener la cadena siguiente:

De la cadena siguiente: "abcXXXabc" requiero desplegar los 7 caracteres primeros, o sea: "abcXXXa". Esto se logra perfecto con esta cadena

Pero si tienes la cadena: "abc&nbsp;&nbsp;&nbsp;" el PHP toma el primer espacio (que sería un caracter de espacio, en 6 caracteres, o sea en: &nbsp; y la cadena se trunca en: "abc&nbs"

Gracias
  #8 (permalink)  
Antiguo 06/09/2010, 18:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Isertar 3 espacios continuos en una cadena

Bier me parece que sigues sin entender el punto...

el detalle es que un &nbsp; son 6 caracteres, en HTML es un espacio visual.... en PHP, son 6 caracteres!!!

y de verdad, usa el cerebro y reflexiona bien lo que se te comenta... ¿si lo captas?

si necesitas que no rompa PHP los espacios &nbsp; simplemente reemplazalos, corta, y recuperalos... tal cual ya te habían dicho...

eits te dio un ejemplo exacto de lo que necesitabas, solo que decidiste cerrar los ojos y pensar que el espacio que se ve -por tus ojos- no son tres espacios que si existen!!

además nos explicas lo mismo desde el inicio... pero lo tuyo no es incorrecto, cierto?
Cita:
Iniciado por Bier Ver Mensaje
echo $resultado;
Obtengo: "abc abc" lo cual es correcto (9 caracteres)
(yo solo veo un espacio)

Cita:
Iniciado por Bier Ver Mensaje
Es incorrecto tu resultado, ya que solo obtienes un espacio, cuando deberían ser 3 espacios juntos.

Gracias de todas formas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 06/09/2010 a las 18:23 Razón: frívolo yo?
  #9 (permalink)  
Antiguo 06/09/2010, 18: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
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por Bier Ver Mensaje
Es incorrecto tu resultado, ya que solo obtienes un espacio, cuando deberían ser 3 espacios juntos.

Gracias de todas formas
lo corriste para ver si realmente no te sirve, la verdad es que a mi me funciona perfectamente.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #10 (permalink)  
Antiguo 06/09/2010, 18:30
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por eits Ver Mensaje
lo corriste para ver si realmente no te sirve, la verdad es que a mi me funciona perfectamente.
Estimado EITS, Gracias, funcionó perfecto, disculpa.

Solo lo ajusté un poco y quedó así:

$codigo = str_replace('?','&nbsp;',substr(str_pad($fila[0],8,'?'),0,8));

Considerando que en el campo no viene el caracter "?" con el hago el ajuste y luego lo cambio a "&nbsp;"

Muy agradecido.

Se que es dificil entender mi planteamiento, pero no pude explicarme de otra forma, pero gracias a "eits" ya esta resuelto.

Gracias a todos por su gran cooperación.
  #11 (permalink)  
Antiguo 06/09/2010, 18:36
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Les comento que requiero lo anterior ya que estoy realizando unos reportes a ser enviados a miniprinter, por lo cual me he enfrentado a diversos problemas, pero ya lo tengo todo desarrollado.

Principales problemas:

Imprimir a miniprinter desde PHP (Resuelto)
Evitar imprimir cabeza y pie de la página en la miniprinter (Resuelto)
Evitar la sangría que deja la miniprinter en cada renglón (Resuelto)
Evitar que al enviar a miniprinter solicite la impresora (Resuelto)
Evitar imprimir el boton de impresión de JS a la miniprimter (Resuelto)

Y Finalmente: Como debo enviar a impresión caracter por caracter, y no utilizar tablas, el control de los espacios es indispensable, y con ello poder visualizar las columnas de la impresion correctamente, lo cual ha quedado superado con la instrucción que indiqué anteriormente.

Gracias a todos.
  #12 (permalink)  
Antiguo 06/09/2010, 18:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Isertar 3 espacios continuos en una cadena

Cita:
Iniciado por pateketrueke Ver Mensaje
Bier me parece que sigues sin entender el punto...

el detalle es que un &nbsp; son 6 caracteres, en HTML es un espacio visual.... en PHP, son 6 caracteres!!!

y de verdad, usa el cerebro y reflexiona bien lo que se te comenta... ¿si lo captas?

si necesitas que no rompa PHP los espacios &nbsp; simplemente reemplazalos, corta, y recuperalos... tal cual ya te habían dicho...

eits te dio un ejemplo exacto de lo que necesitabas, solo que decidiste cerrar los ojos y pensar que el espacio que se ve -por tus ojos- no son tres espacios que si existen!!

además nos explicas lo mismo desde el inicio... pero lo tuyo no es incorrecto, cierto?


(yo solo veo un espacio)




Tienes razón, solo ves un espacio, el explorador convirtió los 3 espacios en 1, debería desplegar: abcXYZa, en donde xyz son los tres espacios.

Gracias por tu gran ayuda, eres un pilar.
Saludos

Etiquetas: espacios, cadenas
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 21:46.