Hola tengo un pequeño problema
yo necesito reemplazar en un texto una sola palabra una vez es decir seria algo asi
hola a todos soy pedro como buen pedro que soy tengo poco dinero.
yo lo que necesito hacer es que borre pedro una sola vez quedaria asi
hola a todos soy como buen pedro que soy tengo poco dinero.
me entienden solo quiero que la reemplaze unasola vez
aver si alguien me encuentra solucion!
Gracias
Usa la funcion str_replace() de php...
http://www.php.net/manual/en/function.str-replace.php
Saludos.
Cita de: ~ Yoya ~ en 11 Marzo 2010, 20:31 PM
Usa la funcion str_replace() de php...
http://www.php.net/manual/en/function.str-replace.php
Saludos.
Pero con str_replace reemplazaria todos los "pedros" xD
Eso sí, sí se presenta un texto que diga
Hola textopedrotexto
Quedará
Hola textotexto
Asi que cuidado con que borras, sí quieres que sólo se borre "pedro" cuando no tenga nada al principio ni al final tendrás que usar expresiones regulares, que son un cacho xD
naaa, que a mi me gustan bastante las expresiones regulares xDDDDDDDDDDDDDDDDD...
Expresiones regulares? Jáá!
Porque no busca la primera coincendia de "pedro" y solo reemplaza esa, no recuerdo las funciones de PHP, pero la idea esta
Cita de: raul338 en 13 Marzo 2010, 00:42 AM
Expresiones regulares? Jáá!
Porque no busca la primera coincendia de "pedro" y solo reemplaza esa, no recuerdo las funciones de PHP, pero la idea esta
Arriba la mencionaron... str_replace() pero cambia la palabra o caracter donde lo encuentre
Si necesitas quitar por ejemplo la a en:
hola como estas
excelente quedaria
hol como ests
pero si necesita quitar los "en"
y escribes
Es una excelente noche en Santiago
quedaria
es una excelte noche Santiago
Osea no sirve 100%
hola pero si quieres sacar los "en"
el str_replace deberas reemplazar los " en "
hay que jugar un poco xD
si, Ari-Slash tiene razon, pero lo que yo decia es que encuentre la primera coincidencia. Con expresiones regulares seria
$final = preg_replace('/[^\w](pedro)[^\w]/i', "pablo", $text, 1); // Solo reeemplaza la primer coincidencia
la "/i" es para que no sea sensible a mayusculas
por ejemplo:
CitarHola pedro, pedro no se como decirte esto: pablo se la come
quedaria a:
CitarHola pablo, pedro no se como decirte esto: pablo se la come
Para que reemplaze a todas, hay que quitar el 1 del ultimo parametro.
Funciona solo cuando "pedro" no esta junto a dos letras
ejemplos que (deberian) funcionar
♫pedro se la come -> ♫pablo se la come
Pedro! No entres ahi -> pablo! No entres ahi
y demas....
No es necesario expreciones regulares, solo quiere eliminar la palabra "en", y la funcion str_replace() funciona perfecto...
<?php
//Funcion para reemplazar letras...
function del($str,$rem, $txt) {
if(!empty($str) && !empty($rem) && !empty($txt))
{
$del = str_replace($str,$rem,$txt);
return $del;
}else { return 'Faltan parametros';}
}
$texto = 'Jesus dijo que volvera pronto';
echo del('o',' ',$texto);
/*Salida:
Jesus dij que v lvera pr nt
*/
?>
Cita de: ~ Yoya ~ en 13 Marzo 2010, 16:12 PM
<?php
//Funcion para reemplazar letras...
function del($str,$rem, $txt) {
if(!empty($str) && !empty($rem) && !empty($txt))
{
$del = str_replace($str,$rem,$txt);
return $del;
}else { return 'Faltan parametros';}
}
$texto = 'Jesus dijo que volvera pronto';
echo del('o',' ',$texto);
/*Salida:
Jesus dij que v lvera pr nt
*/
?>
Ya te dije mas arriba... solo quiere reemplazar la primera vez ¬¬
osea:
Hola juan como estas juan
quiere que quede
Hola como estas juan
Cita de: raul338 en 13 Marzo 2010, 13:09 PM
si, Ari-Slash tiene razon, pero lo que yo decia es que encuentre la primera coincidencia. Con expresiones regulares seria
$final = preg_replace('/[^\w](pedro)[^\w]/i', "pablo", $text, 1); // Solo reeemplaza la primer coincidencia
la "/i" es para que no sea sensible a mayusculas
por ejemplo:
CitarHola pedro, pedro no se como decirte esto: pablo se la come
quedaria a:
CitarHola pablo, pedro no se como decirte esto: pablo se la come
Para que reemplaze a todas, hay que quitar el 1 del ultimo parametro.
Funciona solo cuando "pedro" no esta junto a dos letras
ejemplos que (deberian) funcionar
♫pedro se la come -> ♫pablo se la come
Pedro! No entres ahi -> pablo! No entres ahi
y demas....
eso te dice algo? :rolleyes:
uno solo!! y si se pude usar las expresiones regulares, pero si no las entendes podes probar con str_replace():
if(!$borrado){
str_replace(" pedro ", "", $texto);
$borrado = true;
}
otra vez.... el str_replace reemplaza todas las coincidencias!!! >:D
pido disculpas! tenes toda la razon! me equivoq, asi se arregla:
$texto = explode(" ", $texto);
for($i=0;$i<strlen($texto);$i++){
if(!$borrado){
str_replace("pedro", "", $texto[$i]);
$borrado = true;
}else{
break;
}
}
$texto = implode("", $texto);