Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2005, 10:40
Avatar de Miguel001
Miguel001
 
Fecha de Ingreso: marzo-2005
Ubicación: España
Mensajes: 49
Antigüedad: 19 años, 1 mes
Puntos: 0
Al leer con fgetss evitar los saltos de linea.

Hace poco pregunte algo sobre extraer partes de una cadena.
Se me recomendó la función preg_match_all combinada con expresiones regulares. Es sin duda una expresión muy interesante y que, efectivamente, extrae la porción de cadena que quieres.

Bien, a mi me interesa extraer los links de ciertas paginas webs. Lo consigo fácilmente así:
<?
$url="http://www. http://www.forosdelweb.com"; //Obviamente es un ejemplo.
//Abrimos el fichero en modo lectura
$DescriptorFichero = fopen($url,"r");
while(@!feof($DescriptorFichero)){
@$buffer = fgetss($DescriptorFichero,4096,'<a>');
echo $buffer.’<br>’;
}
¿>

De esta manera exclusivamente se filtran los enlaces.
A la vez se introducen en la base de datos y se eliminan los espacios en blanco, de tal manera que finalmente solo quedan almacenados los links.

Mi problema es que al leer el archivo línea a línea con fgetss, hay algunos enlaces que quedan partidos por un salto de línea.
Por ejemplo:

Línea 1: <a href=”blabla/blabla.html”>Grandes lluvias en las montañas que superan los
Línea 2: 1000 metros de altura en la estación otoñal</a>

De forma que una vez introducidos en la base de datos, en un registro aparece la línea 1 y en el siguiente la línea 2 con lo que es imposible extraerlo en condiciones tras una búsqueda.

¿Hay alguna función que evite estos saltos de línea en los códigos fuente de las páginas?
De forma que cuando se pueda convertir en una sola línea:
Línea 1: <a href=”blabla/blabla.html”>Grandes lluvias en las montañas que superan los 1000 metros de altura en la estación otoñal</a>


Cómo siempre gracias por el interes.