Ich hab ein script geschrieben das einen FTP nach Dateien spidert. Das klappt auch schon wunderbar, leider kommt es öfters vor das doppelte einträge vorhanden sind. Warum kommt das?
Hat wer ne Idee, ne hilfe?
Danke für die Hilfe!
grüße strex
Hat wer ne Idee, ne hilfe?
Danke für die Hilfe!
PHP:
<?
//OTRFTPLIST to MySQL by strex
include("dbconnect.php");
//OTR-FTP
$ftp = "";
$user = '';
$pw = '';
//OTR-FTP Verzeichnisse
$Verzeichnisse = array("otr01","otr02","otr03","otr04","otr05","otr06","otr07","otr08","otr09","otr10","otr11");
//Bad Files, die nicht eingetragen werden sollen
$bads = array("index.txt","done");
function logg($str) {
$pref = "[> FTP <]";
$time = date("H:i:s");
echo("(".$time.")".$pref." >> ".$str."\r\n");
}
@set_time_limit(0);
$verbindung = @ftp_connect($ftp);
logg("*** Verbindung zu FTP-Server ".$ftp." wird hergestellt.<br>");
$fehler=false;
if(!$verbindung) {
logg("*** Konnte kein Verbindung zu FTP-Server herstellen.<br>");
@ftp_quit($verbindung);
$fehler=true;
die();
} else {
$login = @ftp_login($verbindung, $user, $pw);
logg("*** Verbindung zu FTP-Server hergestellt. Anmeldung läuft.<br>");
if(!$login) {
logg("*** Benutzername oder Passwort falsch.<br>");
@ftp_quit($verbindung);
$fehler=true;
die();
}
}
if(!$fehler) {
foreach($Verzeichnisse as $Verzeichnis) {
if(@ftp_chdir($verbindung, "/$Verzeichnis")) {
logg("*** Betrete Verzeichnis ".$Verzeichnis."<br>");
$dateien = @ftp_nlist($verbindung, ".");
foreach($dateien as $datei) {
$DateiGroesse = @ftp_size($verbindung, "/$Verzeichnis/$datei");
$filetime = @ftp_mdtm($verbindung, "/$Verzeichnis/$datei");
$sql = mysql_query("SELECT otrkey FROM `otrlist` WHERE `otrkey` = '$datei' LIMIT 1");
$file_check = mysql_num_rows($sql);
$on=false;
if($file_check == 1){
logg("*** <b>OTRKEY</b>: $datei ist schon in der DB<br>");
$on=true;
}
foreach($bads as $badfile) {
if($datei == $badfile){
$on=true;
}
if (strstr($datei, '.info')) {
$on=true;
}
}
if(!$on){
$timestamp = time();
$pfad = "/$Verzeichnis/$datei";
$status = 0;
$sql = mysql_query("INSERT INTO otrlist (otrkey, dir, pfad, size, time, status, server,filetime) VALUES ('".$datei."','".$Verzeichnis."','".$pfad."','".$DateiGroesse."','".$timestamp."','".$status."','".$ftp."','".$filetime."')");
if($sql == true){
logg("*** <b>OTRKEY</b>: $datei eingetragen<br>");
}else{
logg("*** <b>OTRKEY-Fehler</b>: $datei nicht eingetragen<br>");
}
}
}
}
@ftp_chdir($verbindung, "../");
}
}
@ftp_quit($verbindung);
?>
grüße strex