Foros del Web » Programando para Internet » PHP »

cortar strings

Estas en el tema de cortar strings en el foro de PHP en Foros del Web. hola hacia ya algunos dias que no os daba la lata pero aqui me teneis otra vez aunque es una pregunta que ya he resuelto ...
  #1 (permalink)  
Antiguo 03/07/2003, 06:21
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
cortar strings

hola hacia ya algunos dias que no os daba la lata pero aqui me teneis otra vez aunque es una pregunta que ya he resuelto me gustaria conocer otras alternativas.
la pregunta:

existe alguna funcion que recorte directamente un string a partir de un caracter dado hacia delante y se quede con el resto de la cadena.

yo he tenido que hacer esto pero no he encontrado ninguna que lo haga solo.


Código PHP:

    $var
="pepe pepa";
    
    
// numero de posicion donde se encuentra el primer espacio
    
$pos=strpos($var" ");
    
    
//elimino el string a partir del espacio
    
$var=substr($var0$pos);

    echo 
"<h1> $var </h1>"

Para ejercitrame me gustaria hacer esto sin utilzar funciones, solamente variables y arrays, ha alguien se le ocurre algo
  #2 (permalink)  
Antiguo 03/07/2003, 08:30
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Código PHP:
$var="pepe pepa";
$arr explode(" "$var); // creamos un array donde cada 'palabra' es un token

echo $arr[1]; // esto devuelve el segundo token del array (pepa) 
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 03/07/2003, 12:21
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Mira strrchr(), y strstr()
http://www.php.net/strrchr
http://www.php.net/strstr

Saludos!
  #4 (permalink)  
Antiguo 04/07/2003, 01:26
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
Si pero estas dos funciones hacen exactemente lo contrario, cogen la cadena a partir de del caracter a buscar y no del caracter a buscar hacia atras.

es decir que de $var="pepe pepa"; con strstr () cogera pepa y no pepe
  #5 (permalink)  
Antiguo 04/07/2003, 05:07
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Entonces lo que quieres es que te lea el contenido antes del caracter a buscar no?

Yo necesitaba algo así, que solo me lellera la primera palabra (muestre la cadena hasta un espacio), si encuentro donde puse la solucón te lo coloco aquí.

Un saludo.
  #6 (permalink)  
Antiguo 04/07/2003, 05:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

RuBiO, no entiendo por que no quieres usar las funciones de ti primer mensaje. Pero si para aprender algo, aqui va mi explicacion.

Si revisas el manual oficial donde habla del tipo string (cadena), explica como puedes recorrer una cadena como si seria un array usando la sintaxis $cadena{0} (para el primer caracter). Con esto podrias recorrer la cadena comprobando si el caracter es el de corte e ir añadiendo en otra cadena los caracteres. Algo asi:
Código PHP:
function cortar_caracter($cadena$caracter ' ') {
  
$cadena_cortada=''// inicializamos
  
for ($i=0;$i<strlen($cadena);$i++) {
    if (
$caracter==$cadena{$i}) {
      break;  
// para salir del bucle
    
}
    
$cadena_cortada=$cadena_cortada.$cadena{$i};
  }
  return 
$cadena_cortada;
}

//uso
echo cortar_caracter('pepa pepe',' '); 
Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 04/07/2003, 05:49
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Parecido al codigo de Josemi era el que te iba a poner, te lee HASTA que encuentre el caracter que le indiques(en este caso un espacio).

Josemi como podría meter la cadena cortada en una variable?

Me refieroa $nueva_cadena por ejemplo, para poder contar la veces que aparece o cualquier otra cosa.

Un saludo.
  #8 (permalink)  
Antiguo 04/07/2003, 06:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
La cadena cortada la devuelve la funcion. Puedes guardarla en una variable asi:
Código PHP:
$nueva_cadena=cortar_caracter('pepa pepe',' '); 
como cualquier funcion que devuelva cadenas (substr(), por ejemplo).

Saludos.

PD: Solo funciona cuando le pasas un caracter de corte. Si quieres usar una cadena (mas de un caracter) es mejor usar la funcion strpos().

PD2: Si quieres usar como caracter de corte el salto de linea, debes pasarlo con " para que lo reconozca, asi $nueva_cadena=cortar_caracter('pepa pepe',"\n");
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 04/07/2003, 06:19
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Ya se pq me daba un error.

Muchas gracias Josemi.

Un saludo.
  #10 (permalink)  
Antiguo 07/07/2003, 01:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
gracias josemi, eso era lo que quería saber para coger algo mas de habilidad.
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:02.