Foros del Web » Programando para Internet » PHP »

eliminar ceros izquierda cadena

Estas en el tema de eliminar ceros izquierda cadena en el foro de PHP en Foros del Web. Hola Tengo una cadena de la siguiente forma "0000121212" o "00Abdfdf" quiero quitar los ceros y dejarla 1212121 o Abdfdf e intentando con (int)cadena pero ...
  #1 (permalink)  
Antiguo 16/11/2012, 08:04
 
Fecha de Ingreso: abril-2005
Ubicación: colombia
Mensajes: 242
Antigüedad: 19 años
Puntos: 0
eliminar ceros izquierda cadena

Hola

Tengo una cadena de la siguiente forma "0000121212" o "00Abdfdf" quiero quitar los ceros y dejarla 1212121 o Abdfdf e intentando con (int)cadena pero me funciona solo para lo que no tiene letras para la que tiene letras me retona cero

gracias por cualquier ayuda.
__________________
:aplauso: Ivomat
  #2 (permalink)  
Antiguo 16/11/2012, 08:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: eliminar ceros izquierda cadena

Cita:
(int)cadena
Esto es hacer un casting a la cadena es decir pasarla a numero luego es logico que si la cadena no es un numero no funcione.

El numero de ceros es variable por lo que pones...

Se me ocurre lo siguiente

Código PHP:
Ver original
  1. $cadena = '000abc';
  2. $findme   = '0';
  3. while (strpos($cadena, $findme)==0){
  4. $cadena=substr ($cadena,1);
  5. }
  6.  
  7. echo $cadena;

deberia dar 'abc'
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 16/11/2012, 08:47
 
Fecha de Ingreso: abril-2005
Ubicación: colombia
Mensajes: 242
Antigüedad: 19 años
Puntos: 0
Respuesta: eliminar ceros izquierda cadena

no me sirvio, se queda en el cicloooo
__________________
:aplauso: Ivomat
  #4 (permalink)  
Antiguo 16/11/2012, 09:20
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: eliminar ceros izquierda cadena

Expresiones regulares

Código PHP:
<?php

$cadena 
preg_replace('/^0+/'''$cadena);

?>
  #5 (permalink)  
Antiguo 16/11/2012, 09:26
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: eliminar ceros izquierda cadena

otra opcion es la funcion ltrim($cadena, "0")
  #6 (permalink)  
Antiguo 16/11/2012, 09:32
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: eliminar ceros izquierda cadena

Para que el código de quimfv funcione basta con cambiar el operador para comprobar el valor devuelto por la función strpos por ===.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $cadena = '000abc';
  4. $findme   = '0';
  5. while (strpos($cadena, $findme) === 0) {
  6.     $cadena=substr ($cadena,1);
  7. }
  8.  
  9. echo $cadena;
  10.  
  11. ?>

De todas formas me parece mejor usar preg_replace o ltrim, como menciona hmvr414.
  #7 (permalink)  
Antiguo 16/11/2012, 09:49
 
Fecha de Ingreso: abril-2005
Ubicación: colombia
Mensajes: 242
Antigüedad: 19 años
Puntos: 0
Respuesta: eliminar ceros izquierda cadena

me funciono perfecto con ltrim muchas gracias
__________________
:aplauso: Ivomat
  #8 (permalink)  
Antiguo 17/11/2012, 11:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: eliminar ceros izquierda cadena

Cierto o poner delimitadores creo
Código PHP:
Ver original
  1. $cadena = '000abc';
  2. $findme   = '0';
  3. while (strpos($cadena, $findme)=="0"){
  4. $cadena=substr ($cadena,1);
  5. }
  6.  
  7. echo $cadena;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #9 (permalink)  
Antiguo 19/11/2012, 07:02
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: eliminar ceros izquierda cadena

Cita:
Iniciado por quimfv Ver Mensaje
Cierto o poner delimitadores creo
No, en ese caso tampoco funcionaría. Recuerda que ese cero corresponde a la posición de la primera ocurrencia de un substring en un string y no con el string '0' que se quiere eliminar.

La función strpos devuelve un entero (int) o false en caso de no encontrar el substring, por lo que no favorece en nada delimitarlo.
  #10 (permalink)  
Antiguo 19/11/2012, 07:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: eliminar ceros izquierda cadena

Cierto!!!!

El tema es comparar el 0 (falso) con el 0 Int. Tienes toda la razón.

Estoy de acuerdo en que es mejor usar ltrim una funcion incorporada en el lenguaje... tengo demasiada tendencia a escribir codigo antes de buscar si ya hay algo hecho que haga lo mismo... por herencia de otros lenguajes simpre habia usado la "familia" de funciones trim, ltrim, rtrim para eliminar espacios sobrantes sin pensar en la posibilidad de agregarle un parametro y eliminar un caracter a escoger.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/11/2012 a las 08:09

Etiquetas: izquierda, cadenas, cero
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 02:53.