Foros del Web » Programando para Internet » PHP »

busqueda complicada.

Estas en el tema de busqueda complicada. en el foro de PHP en Foros del Web. Estoy tratando de buscar una cadena dentro de otra pero hay una palabara que cambiara dependiendo de el caso. explicacion con codigo. Código PHP: $variable  ...
  #1 (permalink)  
Antiguo 12/03/2012, 16:06
 
Fecha de Ingreso: mayo-2009
Ubicación: Mérida, Yucatán
Mensajes: 68
Antigüedad: 14 años, 11 meses
Puntos: 3
busqueda complicada.

Estoy tratando de buscar una cadena dentro de otra pero hay una palabara que cambiara dependiendo de el caso. explicacion con codigo.

Código PHP:

$variable 
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis libero turpis, nec vestibulum risus. Vivamus tristique laoreet tellus at sagittis. Donec dictum placerat hendrerit. 
Quisque et mi magna, eget interdum elit. Vestibulum hendrerit convallis orci a ornare. 
El día de hoy, Pedro escalo el árbol.  In non diam vitae dolor scelerisque ultricies. 
Vivamus nec leo nibh, quis rhoncus dui. Pellentesque nibh leo, luctus ac dapibus scelerisque, condimentum et erat.
 Maecenas et nisl leo, in lacinia odio. Vivamus ante magna, dictum in scelerisque eget, mattis in velit. Sed vel tellus erat. Duis eget ante nec orci dapibus interdum vel a felis." 
A mi me interesa obtener sobre ese parrafo "El día de hoy, Pedro escalo el árbol."

Una ves obtenido esta nueva cadena, necesitaría saber Quien fue l que escalo el arbol.

Hay alguna forma de obtener esa información tomando en cuenta que cada hora podria ser diferente el nombre?
  #2 (permalink)  
Antiguo 12/03/2012, 16:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: busqueda complicada.

Siempre va a ser este string?

Cita:
El día de hoy, [aquí cambia solamente???] escalo el árbol
Puedes usar expresiones regulares para solucionarlo:

http://www.forosdelweb.com/f18/aport...s-pcre-646110/
http://php.net/manual/es/book.pcre.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 12/03/2012, 17:05
 
Fecha de Ingreso: mayo-2009
Ubicación: Mérida, Yucatán
Mensajes: 68
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: busqueda complicada.

eso va a cambiar solamente, pero también pueden cambiar los demás datos. lo único que es seguro es El día de hoy y escalo el árbol. todo el demás texto puede variar.
  #4 (permalink)  
Antiguo 12/03/2012, 17:24
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: busqueda complicada.

Un ejemplo muy sencillo que tendrás que mejorar:

Código PHP:
Ver original
  1. <?php
  2. $variable = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis libero turpis, nec vestibulum risus. Vivamus tristique laoreet tellus at sagittis. Donec dictum placerat hendrerit.
  3. Quisque et mi magna, eget interdum elit. Vestibulum hendrerit convallis orci a ornare.
  4. El día de hoy, Pedro escalo el árbol.  In non diam vitae dolor scelerisque ultricies.
  5. Vivamus nec leo nibh, quis rhoncus dui. Pellentesque nibh leo, luctus ac dapibus scelerisque, condimentum et erat.
  6. Maecenas et nisl leo, in lacinia odio. Vivamus ante magna, dictum in scelerisque eget, mattis in velit. Sed vel tellus erat. Duis eget ante nec orci dapibus interdum vel a felis.";
  7.  
  8. preg_match('@El día de hoy, (\w+) escalo el árbol@i', $variable, $m);
  9. echo $m[1]; //Pedro

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 12/03/2012, 17:50
Avatar de bamc_087  
Fecha de Ingreso: marzo-2012
Ubicación: Yucatan
Mensajes: 5
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: busqueda complicada.

oki mi paisano la tienes facil como menciono el compañero antes usa expreciones regulares

$cadena = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis libero turpis, nec vestibulum risus. Vivamus tristique laoreet tellus at sagittis. Donec dictum placerat hendrerit.
Quisque et mi magna, eget interdum elit. Vestibulum hendrerit convallis orci a ornare.
El día de hoy, Pedro escalo el árbol. In non diam vitae dolor scelerisque ultricies.
Vivamus nec leo nibh, quis rhoncus dui. Pellentesque nibh leo, luctus ac dapibus scelerisque, condimentum et erat.
Maecenas et nisl leo, in lacinia odio. Vivamus ante magna, dictum in scelerisque eget, mattis in velit. Sed vel tellus erat. Duis eget ante nec orci dapibus interdum vel a felis.";
$patron = "/El día de hoy, /";
$patron2 = "/ escalo el árbol./";
$encontrado = preg_match_all($patron, $cadena, $coincidencias, PREG_OFFSET_CAPTURE);
$encontrado2 = preg_match_all($patron2, $cadena, $coincidencias2, PREG_OFFSET_CAPTURE);
$inicio = 0;
$fin = 0;
if ($encontrado) {
if ($encontrado2) {
foreach ($coincidencias[0] as $coincide) {
$inicio = $coincide[1];
}
foreach ($coincidencias2[0] as $coincide) {
$fin = $coincide[1];
}
$inicio = $inicio + 15;
print 'el nombre es : ';
for($i=$inicio; $i <= $fin; $i++)
{
print $cadena[$i];
}
}
} else {
print "<p>No se han encontrado coincidencias.</p>\n";
}


Pruebalo aki >>>> http://writecodeonline.com/php/
  #6 (permalink)  
Antiguo 12/03/2012, 18:53
 
Fecha de Ingreso: mayo-2009
Ubicación: Mérida, Yucatán
Mensajes: 68
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: busqueda complicada.

Y yo con un código complicado con strpos y varias de esas.
  #7 (permalink)  
Antiguo 12/03/2012, 19:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: busqueda complicada.

Cita:
Iniciado por JPZamora Ver Mensaje
Y yo con un código complicado con strpos y varias de esas.
Pues tampoco es mala idea, también te puede servir:

Código PHP:
Ver original
  1. <?php
  2. $variable = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis libero turpis, nec vestibulum risus. Vivamus tristique laoreet tellus at sagittis. Donec dictum placerat hendrerit.
  3. Quisque et mi magna, eget interdum elit. Vestibulum hendrerit convallis orci a ornare.
  4. El día de hoy, Andrés escalo el árbol.  In non diam vitae dolor scelerisque ultricies.
  5. Vivamus nec leo nibh, quis rhoncus dui. Pellentesque nibh leo, luctus ac dapibus scelerisque, condimentum et erat.
  6. Maecenas et nisl leo, in lacinia odio. Vivamus ante magna, dictum in scelerisque eget, mattis in velit. Sed vel tellus erat. Duis eget ante nec orci dapibus interdum vel a felis.";
  7.  
  8. $inicio = strpos($variable, 'El día de hoy, ');
  9. $fin = strpos($variable, ' escalo el árbol.');
  10.  
  11. for ($i = $inicio+15; $i < $fin; $i++) {
  12.     echo $variable[$i];
  13. }

Resultado: Andrés
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: busquedas, variables
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 16:23.