Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2011, 08:54
mxmaximusmx
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 14 años, 6 meses
Puntos: 0
como cargar urls desde txt dentro de array

Hola webmasters!

estaba adaptando un buscador sin mysql a mi sitio web, busca las palabras y te muestra la informacion correspondiente, todo fuciono bien hasta que me cago un array(); lo que pasa es que en una parte del codigo trato de cargar dentro de un array un archivo.txt con las direcciones de los archivos que contienen la información.

ejemplo:

$cargar = include('indexacion.txt'); // archivo que contiene las urls.

$data = array($cargar);

intenté con include, file, fopen, file_get_contents y no e podido me sale un error dentro de todo el codigo que dile file stream file_Get_contents

me habían comentado que podía con fgets e ir guardando una linea de archivo por cada indice y del arreglo lo haces con un while hasta que acabe el archivo.

pero realmente estoy recien entrando a programar y trabajar con ficheros sobre todo. le agradeceria que me ayudaran a hacer esta adaptación con el codigo que les adjunto, de antemano muchas gracias.

aqui les dejo el codigo que como está funciona a la perfección pero al incluirle el txt ya comienzan los dolores de cabeza

ayudenme porfavor :S


<?php

//Fuciones
function decodificar_html($str,$FLAG = false){
$all = get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES);
$entities = get_html_translation_table(HTML_SPECIALCHARS, ENT_NOQUOTES);

if($FLAG)
$ARR = $all;
else
$ARR = array_diff($all, $entities);

$str = strtr($str, array_flip($ARR));
return $str;
}

//Array con todos los archivos html
$urls = array('indexacion/PS495788.txt','indexacion/PS0d133a.txt','indexacion/PS8905f1.txt','indexacion/PS5765f5.txt','indexacion/PSe9295d.txt');

if($_POST['key_words']){

$KW = $_POST['key_words'];
$data = array($based);

//Construimos un array con los campos SCORE,TITULO,META DESC y KW,CONTENIDO de cada uno de los archivos
for($i=0;$i<count($urls);$i++){
$content = file_get_contents($urls[$i]);
//$content = utf8_decode($content);
$data[$i]['score'] = 0;
preg_match("|<title>(.*)</title>|m", $content, $items);
$data[$i]['titulo'] = str_replace("'","\'",str_replace('"',"\"",$items[1]));
unset($items);
preg_match("|<a href=\"(.*)\">(.*)</a>|m", $content, $items);
$data[$i]['METAdesc'] = $items[1];
unset($items);
preg_match("|<body>(.*)</body>|m", $content, $items);
$data[$i]['METAkw'] = str_replace(",",", ",$items[1]);
unset($items);
$content = str_replace("\n","", $content);
$content = str_replace("[\n\r]","", $content);
$content = str_replace("[\n]","", $content);
$content = str_replace("'","\'",$desc[$i].'. '.$content);
$content = str_replace('"',"\"",$content);
$content = strip_tags($content);
$data[$i]['contenido'] = decodificar_html($content,true);
}

//Comprovamos las ocurrencias de las palabras clave y vamos aumentando el SCORE
for($i=0;$i<count($urls);$i++){
preg_match_all("|$KW|i", $data[$i]['titulo'], $items);
$data[$i]['score'] += count($items[0])*5;
unset($items);
preg_match_all("|$KW|i", $data[$i]['METAdesc'], $items);
$data[$i]['score'] += count($items[0])*3;
unset($items);
preg_match_all("|$KW|mi", $data[$i]['METAkw'], $items);
$data[$i]['score'] += count($items[0])*2;
unset($items);
preg_match_all("|$KW|i", $data[$i]['contenido'], $items);
$data[$i]['score'] += count($items[0])*1;
unset($items);
}

//Ordenamos el array por SCORE de mayor a menor
rsort($data);

//Parseamos
for($i=0;$i<count($urls);$i++){
if($data[$i]['score'] != 0){
print("<iframe name='mail' marginwidth='0' marginheight='0' src='funciones/vistabusqueda.php?".$data[$i]['METAdesc']."' frameborder='0' width='381' height='210' scrolling='no'></iframe>");
}
}
}

?>