Foros del Web » Programando para Internet » PHP »

Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Estas en el tema de Como encontrar una palabra en una cadena ?, sin utilizar array() ? en el foro de PHP en Foros del Web. Hola, necesito tomar la palabra os de esta cadena: $k='os unos osos en los pozos os sos'; Asi que hice esto: Código PHP: <?php     $x ...
  #1 (permalink)  
Antiguo 08/03/2007, 18:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Hola,

necesito tomar la palabra os de esta cadena: $k='os unos osos en los pozos os sos';

Asi que hice esto:
Código PHP:
<?php
    $x
='os';
    
$k='os unos osos en los pozos os sos';
    echo 
ereg_replace($x,'::',$k);
?>
PEro como ven, no logro m proposito, asi que cambie $x por:
Código PHP:
<?php
    $x
='^os$';
?>
Pero ahí sí que menos...

Como puedo tomar las palabras os y cambiarlas con :: ?
  #2 (permalink)  
Antiguo 08/03/2007, 18:47
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Dices que quieres encontrar una cadena? Seguro te refieres a su posición dentro de otra cadena, bien, usa esta función: strstr ( string pajar, string aguja )
  #3 (permalink)  
Antiguo 08/03/2007, 19:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Gracias ElJavista,

No quiero hallar si posición, sino reemplazarla, puedes ver que he puesto:

ereg_replace pero me captura la palabra y otras palabras también...

La idea es NO utilizar ARRAY()
  #4 (permalink)  
Antiguo 08/03/2007, 19:31
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Ah ya veo, me fijé mucho en sus palabras y poco en sus códigos, bueno para que usa esa función? use simplemente str_replace, la función que ud. usó es para reemplazar no palabras concretas sino expresiones regulares.
  #5 (permalink)  
Antiguo 08/03/2007, 20:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Ey, ElJavista,

gracias por tu intento de ayudar, pero conoces la funcion ?

Si la pruebas veras que NO puede ser utilizada para mi proposito, y que para "mi proposito" TIENE que utilizarse una ER.
  #6 (permalink)  
Antiguo 08/03/2007, 20:11
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Y por qué ah? Si sólamente quiere reemplazar una cadena DETERMINADA por otra, porque tiene que usar el er_? El er_ sirve para reemplazar no cadenas determinada, sino expresiones regulares, las cuales conllevan un patrón, pero si no hay patrón, no es necesario usarlas. Yo no entiendo bien de expresiones regulares, pero podría ud. decirme cual es la intención para que obligadamente tenga que usar esa función?
  #7 (permalink)  
Antiguo 09/03/2007, 00:51
Avatar de TheViejo  
Fecha de Ingreso: marzo-2007
Ubicación: Delante de mi Vetusto PC.
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Hola Anarko creo que he entendido lo que buscas hacer, prueba esto :

Código PHP:
$x='(^os[[:space:]])|([[:space:]]os[[:space:]])';
$k='os unos osos en los pozos os sos';
echo 
ereg_replace($x,'::',$k); 
No es una maravilla y seguro que se podría hacer mejor, pero lo mismo te sirve...

Un saludo.
  #8 (permalink)  
Antiguo 09/03/2007, 07:05
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Podrias intentar manera Expresiones Regulares....

http://ve.php.net/preg_replace

Ahora Bien.. para lo que andas buscando podrias hacer lo siguiente :

Código PHP:
<?php
$k
='os unos osos en los pozos os sos'

$k preg_replace("/\bos\b/i"'::'$k); 

     echo 
"$k"

// SALIDA 
// :: unos osos en los pozos :: sos 
?>
De todas maneras leete el manual para que entindas en por que los identificadores que use.. en este caso :b

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #9 (permalink)  
Antiguo 09/03/2007, 07:38
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Mucho Mejor :

Código PHP:
$x 'os';
$k='os unos osos en los pozos os sos'
$k preg_replace("/\b$x\b/i"'::'$k); 
Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #10 (permalink)  
Antiguo 09/03/2007, 16:19
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como encontrar una palabra en una cadena ?, sin utilizar array() ?

Hola TheViejo,

Hola xyyy7

Gracias por su ayuda, sus Códigos van de maravilla.

Corren perfecto.

Ahora puedo continuar con mi proyecto.






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 00:40.