Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/07/2012, 13:03
higochumbo
 
Fecha de Ingreso: junio-2010
Mensajes: 26
Antigüedad: 13 años, 10 meses
Puntos: 3
Mensaje Respuesta: Como encuentro una cadena no especificada?

Hola de nuevo :D

1- Estoy probando cosas y he resumido bastaaaaaaaaaaaaaaante el problema. Capturo el código de una página html y lo meto en una variable (hasta aki todo bien):

Código PHP:
Ver original
  1. $Url_Nombre ="http://magiccards.info/zen/en/165.html";
  2. $fo = fopen("$Url_Nombre","r");
  3. $Codigo = fgets($fo);
  4. while (!feof($fo)) {
  5. $Codigo .= fgets($fo, 4096);
  6. }
  7. fclose ($fo);

2- Como todo el código ahora es una cadena y está dentro de la variable $Codigo puedo usar las funciones para los strings, en este caso voy a usar substr para empezar a leer la cadena DESDE una posición concreta con lo ke consigo ke el primer texto ke aparezca en pantalla sea el nombre ke estoy buscando:

Código PHP:
Ver original
  1. $CodigoSinCabecera = substr("$Codigo", 212);

3- Este es el código una vez realizado el proceso (no lo voy a poner entero porke es mucho y es tontería pero voy a poner un cachito representativo para ke se vea ke es lo ke kiero hacer ya ke una vez veais el codigo podreis ver ke lo primero ke sale es el nombre ke busco (en este caso Harrow) y lo ke kiero hacer es borrar absolutamente todo lo ke hay a partir del primer paréntesis (paréntesis inclusive):

Código HTML:
Ver original
  1. Harrow (Zendikar)</title>
  2.   <style type="text/css">
  3.    <!--
  4.    body {background: #fafafa url(http://magiccards.info/images/bg.gif) repeat-x;margin: 1em 1.5em;}
  5.    body,td,th {font: 0.9em/1.2em Verdana;color: #444;}
  6.    th {text-align: left; font-weight: bold;}
  7.    p {margin: 0.5em 0;}
  8.    a {color: #4666BC;}
  9.    a:hover {color: #333;background-color: #ff0;}
  10.    a:active {text-decoration: none;}
  11.    a:visited {color: #283C71;}
  12.    li.legal {color: #216728;}
  13.    li.restricted {color: #B98420;}
  14.    li.banned {color: #672121;}
  15.    li.reserve {color: #4F55CC;}
  16.    p.ctext {background-color: #fff;padding: 4px;}
  17.    p.otext {background-color: #fff;padding: 4px;}
  18.    div.oo {margin-left: 0em; padding: 0.5em 0 0 0; border: 1px solid #bbb; font-size: 75%;line-height: 100%;}
  19.    div.oo span {padding: 4px;}... ... ... hay bastante mas código.

Una vez solucionado eso, simplemente uso la funcion para eliminar los espacios y ya podría meter el nombre directamente en una variable.

Duda! ¿Cómo borro todo a partir del primer paréntesis? ¿Es eso posible? ¿Alguna otra sugerencia?

A continuación dejo el código completo por si kereis probarlo. Os imprimirá dentro de un textarea el contenido de la página html:

Código PHP:
Ver original
  1. $Url_Nombre ="http://magiccards.info/zen/en/165.html";
  2. $fo = fopen("$Url_Nombre","r");
  3. $Codigo = fgets($fo);
  4. while (!feof($fo)) {
  5. $Codigo .= fgets($fo, 4096);
  6. }
  7. fclose ($fo);
  8. $CodigoSinCabecera = substr("$Codigo", 212);
  9. print("<textarea name='mi_area' cols='100' rows='20'>$CodigoSinCabecera</textarea>");