Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2007, 21:08
*Arcangel*
 
Fecha de Ingreso: noviembre-2006
Ubicación: Salinas
Mensajes: 216
Antigüedad: 18 años, 3 meses
Puntos: 0
De acuerdo Problema con robot.

Buenas, espero se encuentren bien.

Estuve navegando por la web y encontre algo que hace mucho estaba por crear y lo encontre. Es un spider o robot, pero lo deseo utilizar con unas imagenes (fondos de escritorio).

Pero tiene errores y no encuentro como corregirlos, si me pueden dar una mano, o decirme donde esta el error, gracias.

spider.php
Código PHP:
<?php
    
// -----------------------------------------------------
    //
    //  Author:                                        WiZ2
    //  E-Mail:                          [email protected]
    //  Date (YYYY/MM/DD):                       2002-09-22
    //  Revision (YYYY/MM/DD):                   2002-09-22
    //  Version:                                  0.1 ALPHA
    //    
    // -----------------------------------------------------
    //  REQUIERE class.url.php
    //  EJEMPLO:
    //
    //         $savepath = "down/blizzard/";
    //         $indomain = true;
    //         $rewrite = false;
    //         $reclevel = 2;    
    //         $rpath = "ghost/";
    //         evaluate("www.blizzard.com/ghost/index.shtml");
    //
    //   php.exe spider.php
    //   subst i: c:\scr\down\blizzard
    //
    //   i:\index.html
    //
    // NOTA:
    //   No es para nada recomendable usar este spider con
    //   páginas dinámicas
    //
    // PARA HACER:
    // -----------
    //  - Que se puedan obtener ficheros html dinámicos con parámetros
    //    ej. index.php?sec=1
    //  - Arreglar algún que otro bug del programa
    //  - Ponerle funcionalidad
    //  - Hacer un gui con GTK y otros
    // -----------------------------------------------------

    
require_once("class.url.php");
    
    
// Extensiones válidas para los ficheros    
    
$valid_ext =
        array (
        
"htm*",        
        
"?htm*",
        
"php",
        
"php*",
        
"gif",
        
"jpg",
        
"js",
        
"css",
        
"png"
        
);

    
// Extensiones válidas para los ficheros con urls
    
$html_ext =
        array (
        
"htm*",
        
"?htm*",
        
"php",
        
"js",
        
"css",
        
"php*"
        
);

    
$evaluated = array();
    
    
$savepath "down/";
    
    function 
makedir($path) {
        
$path str_replace("\\""/"$path);
        for (
$n 0$n strlen($path); $n++) {
            if (
substr($path$n1) == "/") {
                if (!
is_dir(substr($path0$n))) {
                    
mkdir(substr($path0$n), 667);
                }
            }
        }
    }    

    function 
validPattern($pattern$txt) {
        
$stpos 0$next 0;
        for (
$n 0$n strlen($pattern); $n++) {
            switch (
substr($pattern$n1)) {
                case 
"?"$stpos++; break;
                case 
"*"$next 1$stpos++; break;
                default:
                    if (
$next == 1)     {
                        for (;
$stpos strlen($txt);$stpos++) {                            
                            if (
substr($pattern$n1) == substr($txt$stpos1)) { $stpos++; break; }
                        }
                        
$next 0;
                    } else {                                                
                        if (
substr($pattern$n1) != substr($txt$stpos1)) return false;
                        
$stpos++;
                    }
            }
            if (
$stpos strlen($txt)) return false;
        }
        return 
true;
    }
    
    function 
filefilter($txt) {
        global 
$valid_ext;
        if (
strpos($txt"<") == "" && strpos($txt">") == "")    {
            if (
strpos($txt"{") == "" && strpos($txt"}") == "")    {
                if (
strpos($txt".") != "") {
                    
$url1 = new url($txt);                                        
                    for (
$n 0$n sizeof($valid_ext); $n++) {                        
                        if (
validPattern("." $valid_ext[$n], $url1->getExtension())) {
                            return 
true;
                            break;
                        }
                    }
                    unset(
$url1);
                }
            }
        }
        return 
false;
    }
    
    function 
parseHtml($urlD$level 0) {
        global 
$savepath$indomain$rewrite;        
        echo 
str_repeat(" "$level)  . "[Loading... $urlD]";
        
$level++;
        
$url = new url($urlD);
        if (
$html $url->download()) {                                                                
            echo 
" {\n";
            
$tags explode("\""$html);
            for (
$n2 0$n2 sizeof($tags); $n2++) {
                
$tagk explode("'"str_replace(chr(9), ""trim($tags[$n2])));                
                for (
$n 0$n sizeof($tagk); $n++) {                        
                    
$tag $tagk[$n];    
                    if (
filefilter($tag)) {
                        
$ret $url->getAbsolute(new url($tag));
                        if (
$indomain) {
                            if (
$url->inDomain($ret)) evaluate($ret->getUrl(), $level);
                        } else {
                            
evaluate($ret->getUrl(), $level);
                        }
                        unset(
$ret);
                    }
                }                                
            }            
            echo 
str_repeat(" "$level)  . "Saving... " $savepath $url->getUri();
            
makedir($savepath $url->getPath());                    
            if (
$rewrite) {
                
fwrite($fd fopen($savepath $url->getUri(), "w+"), $html); fclose($fd);            
                echo 
" - Ok\n}\n";
            } else {
                if (!
file_exists($savepath $url->getUri())) {
                    
fwrite($fd fopen($savepath $url->getUri(), "w+"), $html); fclose($fd);            
                    echo 
" - Ok\n}\n";
                } else {
                    echo 
" - Ok(DR FE)\n";
                }
            }            
        } else {
            echo 
" - Error\n";
        }
    }
    
    function 
evaluate($url$level 0) {
        global 
$evaluated$html_ext$savepath$reclevel$rpath$rewrite;
        
        
// Condición para aceptar la petición
        
$pu = new url($url);
        
        if (!
in_array(strtolower($url), $evaluated)) {
            
array_push($evaluatedstrtolower($url));                                
                        
            
$ok 0;
            for (
$n 0$n sizeof($html_ext); $n++) {                
                if (
validPattern("." $html_ext[$n], $pu->getExtension()) && $level $reclevel) {                                    
                    if (
validPattern("$rpath*"$pu->getUri())) {
                        
parseHtml($url$level);
                        
$ok 1; break;
                    }
                }
            }
            if (
$ok == 0) {
                echo 
str_repeat(" "$level)  . "Saving... " $savepath $pu->getUri();
                if (
$pu->exists($pu)) {                    
                    
makedir($savepath $pu->getPath());
                    if (
$rewrite) {
                        
$pu->save($savepath $pu->getUri());
                        echo 
" - Ok\n";
                    } else {
                        if (!
file_exists($savepath $pu->getUri())) {
                            
$pu->save($savepath $pu->getUri());
                            echo 
" - Ok\n";
                        } else {
                            echo 
" - Ok(DR FE)\n";
                        }
                    }                    
                } else {
                    echo 
" - Error(FNE)\n";
                }
            }
            
            
//write_file("sample.out", "$url\n", "a");            
        
}
    }

    
$savepath "down/ppt/";
    
$indomain true;
    
$rewrite false;
    
$reclevel 2;    
    
$rpath "";
    
evaluate("www.unawebqquiera.com");

?>