Mortuux

Diario de un estudiante geek. Informática, tecnología, programación, redes, sistemas operativos, bases de datos…

Buscar y reemplazar cadenas en php


Esta tarea normalmente se realiza a través de la función strpos(cadena_donde_se_busca,subcadena_a_buscar) que devuelve false si no encuentra nada, o devuelve la posión del primer carácter buscado dentro de la cadena.

$cadena = "Hola que tal estoy probando las cadenas"
$pos = strpos($cadena, "estoy");
if (!$pos)
echo "No se ha encontrado nada\n");
else
echo "Posición: $pos\n");

Eso devolvería el valor 13.

También se puede indicar que empiece a buscar desde la derecha, para ello existe la función strrpos(). Como ya esperabas, strpos() es sensible a las mayúscualas y minúsculas, pero curiosamente no hay otra alternativa para esta función. Pero en php existe la función strstr() que funciona de manera similar a strpos() y tiene una variante sin sensibilidad a mayúsculas denominada stristr(). La diferencia entre strstr() y strpos(), es que strstr() devuelve la parte posterior de la subcadena buscada. En el ejemplo anterior, strpos() devolvía 13, pues bien, utilizando la función strstr():

$cadena = "Hola que tal estoy probando las cadenas"
$pos = strstr($cadena, "estoy");
if (!$pos)
echo "No se ha encontrado nada\n");
else
echo "Posición: $pos\n");

Eso devolvería “estoy probando las cadenas”

Para reemplazar cadenas existen dos funcionaes. Una de ellas es substr_replace, que podrá ser utilizada siempre que conozcamos la posición y la longitud de la sub cadena a reemplazar.

$cadena = "Hola que tal estoy probando las cadenas";
$nueva = substr_replace($cadena, "estoy", 13, 5);
echo "$nueva\n";

Pero no tenemos porque conocer la longitud ni la posición, para estos casos tenemos la función str_replace(subcadena_buscada, subcadena_nueva, cadena)

$cadena = "Hola que tal estoy probando las cadenas";
$nueva = str_replace("probando", "quemando", $cadena);
echo "$nueva\n";

Anuncios

Una respuesta a “Buscar y reemplazar cadenas en php

  1. drarchi 21 julio 2013 en 15:44

    quiero invertir solo las consonantes de una palabras
    es decir
    murcielago a gulcieramo

    lo que hice hasta ahora es sacar la vocales y usar strrev para iinvertir el orden

    ahora tengo que reintroducir las vocales extraidas en la correcta posicion y por eso pienso que strpos puda ser una solución.

    se puede?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: