TIME OUT HELP

cs_ekinoks Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 novembre 2005 - 31 août 2003 à 18:03
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 - 1 sept. 2003 à 00:57
alors voila ... ce code ci desu est un indexeur de ftp... le problemme c'est que quant les serveur son un peu gros, la page n'a pas le temps de tout indexé accose du time out de 30sec j'aimeré que des que il y a le time out, alors la page ce reconecté et continu l'indexage la ou elle en été, je ne pence pas que ca soi trop dur, je pence qu'une ligne suffira mais je n'y arrive pas :^/ voice le CoDe :

<?
//Se connecter à la base pour insérer les enregistrements
require("conf.php3");
$db = mysql_connect($serveur, $utilisateur, $motDePasse);
mysql_select_db($sql_bdd,$db);
$date=date( "Y-m-d", time() );

//Eviter les doublons dans la base
$query = mysql_query("SELECT * FROM link where host like "$ip" group by host");
$result = mysql_num_rows($query);
if ($result==1)
{
Echo "
FTP déjà Indexé !

Revenir à l'index
";
exit;
}

//Définir la connexion
$conn_id = ftp_connect($ip,$port);

// authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, $login, $pwd);

// vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
exit;
}
else
{
echo "Indexage en cours"."
";

$count_dossiers=1;
$i=0;
$Dossier0=$rep;
$Dossier1=$rep;
while (${"Dossier".$i}!="")
{
$i=$i+1;
$fichiers = ftp_rawlist($conn_id, ${"Dossier".$i});
$Dossier_parent=${"Dossier".$i};
if (substr ($Dossier_parent.$details[8]."/",0,strlen ($rep))!=$rep)
{
exit;
}
foreach($fichiers as $fichier)
{
//Découpe $fichier en différentes chaines identifiables
$details = preg_split("/\s+/", $fichier);
//Si la premiere lettre de $fichier est un d alors c'est un dossier sinon c'est un fichier
if (strpos(" "."$fichier","d")=="1" and $details[8]!="." and $details[8]!=".."){
$count_dossiers = $count_dossiers +1;
${"Dossier".$count_dossiers}=$Dossier_parent.$details[8]."/";
}
else
{
// On isole les repertoires raccourcis
if (!$fichier or strpos(" "."$fichier","l")!="1" and $details[8]!="." and $details[8]!="..")
{
$file= stristr ($fichier, $details[8]);
$file= "ftp://".$login.":".$pwd."@".$ip.$Dossier_parent.$file;
mysql_query ("Insert into link (host, file, date) VALUES ('$ip', '$file', '$date')");
echo "".$file."
";
}
}

}
}
}

?>

Si quellqu'un c'est comment faire, ca seré SUPER TROP TOP COOL :^p ;)
Thx

3 réponses

defkrie Messages postés 435 Date d'inscription vendredi 20 septembre 2002 Statut Membre Dernière intervention 20 novembre 2004
31 août 2003 à 20:00
moi je connait la solution personne ne la connait ou sait quelle existe, soit tu rend le temps de la page infini soit tu chronomètre le temps et des que tu arrive à 95 % du temps limit tu reload avec tes nouvelles variables.
pour ton code tu peux l'accéléré par exemple quand tu a fini un requete vide la mémoire allouée à ta recherche tu gagnera un temps précieux...
\->Bye Defkrie !?!
0
cs_ekinoks Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 novembre 2005
31 août 2003 à 21:03
Oke merci mais he ... il y auré pas une sollution ki consiste a dir kan il revoi comme mesage ereur time out alors il se reconecte et reprent la ou il en été ?
vidé la memoire allouée ? comment je fait ?
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
1 sept. 2003 à 00:57
utilise register_shutdown_function()

Houzéf@ - www.123toto.com
0
Rejoignez-nous