Foros del Web » Programando para Internet » PHP »

Buscar un texto dentro de una cadena y eliminar el resto

Estas en el tema de Buscar un texto dentro de una cadena y eliminar el resto en el foro de PHP en Foros del Web. hola amigos de foros del web, hoy escribo por eso, tengo un codigo de fuente HTML en una variable de PHP, quiero que ese codigo ...
  #1 (permalink)  
Antiguo 07/04/2009, 09:27
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Pregunta Buscar un texto dentro de una cadena y eliminar el resto

hola amigos de foros del web, hoy escribo por eso, tengo un codigo de fuente HTML en una variable de PHP, quiero que ese codigo de fuente me busque todo lo que esta entre tal y tal dato y me lo aloje en otra variable, algo asi como parsear un archivo XML pero esta vez es un codigo HTML, estava pensando en la opcion buscar y remplazar para eliminar todo lo demas, pero el problema es que el codigo de fuente no siempre es igual.

ejemplo:
Código:
<div id="ComunidadKM"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
      <td width="99"><a href="http://kalvinman.com" title="Comunidad KM - Hackers y Webmasters"><img src="http://kalvinman.com/menukm/kalvinman.jpg" width="99" height="30" border="0" /></a></td> 
      <td width="106"><a href="http://nyudweb.com" title="Dise�o y Desarrollo web"><img src="http://kalvinman.com/menukm/nyud.jpg" width="106" height="30" border="0" /></a></td> 
      <td width="6" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><img src="http://kalvinman.com/menukm/comunidad_km_r1_c3.jpg" width="6" height="30" /></td> 
      <td width="31" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://blog.kalvinman.com" title="Blog KM"><img src="http://kalvinman.com/menukm/blogkm.jpg" width="31" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://blog.kalvinman.com" title="Blog KM">Blog KM</a></td> 
      <td width="38" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://kalvinman.com/km/" title="Comunidad KM"><img src="http://kalvinman.com/menukm/comunidadkm.jpg" width="38" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://kalvinman.com/km/" title="Comunidad KM">Foros</a></td> 
      <td width="31" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://juegos.kalvinman.com/" title="Juegos KM"><img src="http://kalvinman.com/menukm/juegoskm.jpg" width="31" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://juegos.kalvinman.com/" title="Juegos KM">Juegos</a></td> 
      <td width="30" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://downkm.com/" title="DownKM - Downloadz Gratis"><img src="http://kalvinman.com/menukm/downkm.jpg" width="30" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://downkm.com/" title="DownKM - Downloadz Gratis">DownKM</a></td> 
      <td width="28" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://konoyek.com/" title="Programas, peliculas, Juegos"><img src="http://kalvinman.com/menukm/konoyek.jpg" width="28" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://konoyek.com/" title="Programas, peliculas, Juegos">Warez</a></td> 
      <td width="32" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://muribageek.com/" title="Lo que un geek debe saver"><img src="http://kalvinman.com/menukm/muribageek.jpg" width="32" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://muribageek.com/" title="Lo que un geek debe saver">Geeks</a></td> 
      <td width="26" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://acreactivo.kalvinman.com/" title="Arte Creactivo"><img src="http://kalvinman.com/menukm/artecreactivo.jpg" width="26" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://acreactivo.kalvinman.com/" title="Arte Creactivo">Art Design</a></td> 
      <td width="33" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://video.kalvinman.com/" title="Videos KM"><img src="http://kalvinman.com/menukm/videokm.jpg" width="33" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://video.kalvinman.com/" title="Videos KM">Videos</a></td> 
      <td width="31" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://neptoweb.com/" title="Nepto - El futuro no es como antes"><img src="http://kalvinman.com/menukm/nepto.jpg" width="31" height="30" border="0" /></a></td> 
      <td background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg"><a href="http://neptoweb.com/" title="Nepto - El futuro no es como antes">Nepto</a></td> 
    </tr> 
  </table> 
</div>
y de ay solo quiero sacar los que este entre
<td width="33" background="http://kalvinman.com/menukm/comunidad_km_r1_c20.jpg">
y
</td>
??? como lo haria, me han dicho que con expresiones regulares pero no se como?. xD
  #2 (permalink)  
Antiguo 07/04/2009, 10:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Saludos.
  #3 (permalink)  
Antiguo 07/04/2009, 11:09
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

tengo lo siguiente

Código PHP:
preg_match_all("#<title>([^<]+)</title>#"$myHtml$salida);
echo 
$salida[1][0]; 
y funciona me obtiene el titulo de la web que estoy viendo

pero luego hago esto
Código PHP:
preg_match_all("#<h1>([^<]+)</h1>#"$myHtml$salida);
echo 
$salida[1][0]; 
Y no funciona no me muestra los contenidos dentro de h1 de la pagina, y sin embargo ya vi el codigo de fuente y si hay <h1>texto </h1> en la pagina.

que hago?
  #4 (permalink)  
Antiguo 07/04/2009, 11:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

y estos son h1 en minúsculas o H1 en mayúsculas???

si es ambos, usa el modificador i para hacer tus búsquedas...

Código:
#<h1>([^<]+)</h1>#i
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/04/2009, 12:06
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

Ya encontre el porque no funciona pero no lo he podido solicionar:

Código PHP:
$myHtml "<h1>hola</h1>";
preg_match_all("#<h1>([^<]+)</h1>#"$myHtml$salida);

for (
$i 0$limite count($salida[1]); $i $limite$i++) { 
  print 
$salida[1][$i] . " <br/>"

Asi si lo encuentra

Pero si la variable myHtml es asi:
Código PHP:
$myHtml "<h1><b>hola</b></h1>";
preg_match_all("#<h1>([^<]+)</h1>#"$myHtml$salida);

for (
$i 0$limite count($salida[1]); $i $limite$i++) { 
  print 
$salida[1][$i] . " <br/>"

no lo encuentra, que puedo hacer para eso?
  #6 (permalink)  
Antiguo 07/04/2009, 12:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

Podría ser:
#<h1>(.*?)</h1>#
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 07/04/2009 a las 12:28
  #7 (permalink)  
Antiguo 07/04/2009, 12:22
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Buscar un texto dentro de una cadena y eliminar el resto

Gracias muchas gracias jejejje ahora comienza mi plan macabro para dominar internet jejejej, es broma, pero si me ayuda mucho esto. xD
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 14:30.