Problème sur un script php
Posté : 05 juin 2008, 14:31
Bonjour,
J'ai un problème avec se script PHP.
C'est un script censé vérifié tout les liens d'un site internet. Il récupère le code http (404,200...)
et l'insère dans un tableau.
Il plante... apparement il boucle sur le premier lien qu'il trouve.
Je sais que l'on ne doit pas poster plus de 20 lignes...mais je ne cois vraiment pas dans quelle partie du code est l'erreur.
Merci d'avance et bon courage à ceux qui se pencherons dessus.
J'ai un problème avec se script PHP.
C'est un script censé vérifié tout les liens d'un site internet. Il récupère le code http (404,200...)
et l'insère dans un tableau.
Il plante... apparement il boucle sur le premier lien qu'il trouve.
Je sais que l'on ne doit pas poster plus de 20 lignes...mais je ne cois vraiment pas dans quelle partie du code est l'erreur.
Merci d'avance et bon courage à ceux qui se pencherons dessus.
<?php
$ADRESSE = "http://www.terresens.com";
$array = array();
function getA($cha){
global $array;
while ($ligne = fgets($cha)){
$tab = preg_split("/href=\"/", $ligne);
for ($i = 1; $i < count($tab); $i++){
if (preg_match("/^(\S+)\"/", $tab[$i], $out)){
if (!($out[1] == "#" || $out[1] == "")){
if (!isset($array[$out[1]])) $array[$out[1]] = 0;
}
}
}
}
}
function checkUrl($adress){
global $ADRESSE;
global $array;
$cha = fopen ($adress, "r");
getA($cha);
fclose($cha);
$i = 0;
foreach ($array as $keys => $value){
if ($value == 0){
if (!preg_match("/http:\/\//", $keys)){
$vari = $ADRESSE . $keys;
$cha1 = @fopen($vari, "r");
$array[$keys] = $http_response_header[0];
@fclose($cha1);
//checkUrl($ADRESSE . $keys);
} else {
$vari = $keys;
$cha1 = @fopen($vari, "r");
$array[$keys] = $http_response_header[0];
@fclose($cha1);
}
}
}
}
checkUrl($ADRESSE);
?