Hyäne Geschrieben 20. August 2008 Geschrieben 20. August 2008 Hi brauche mal ein script das folgendes macht: - Ein Verzeichnis durchgehen - die ersten 4 Zeichen des Dateinames rauslesen - alle dateien auflisten - keine doppelten ( erste vier Zeichen ) - in eine datei speichern ich denk mal da kommt Perl am besten in frage oder? danke für eure hilfe Zitieren
flashpixx Geschrieben 20. August 2008 Geschrieben 20. August 2008 Du kannst auch PHP nehmen. Was bezahlst Du dafür? PHP - SELFPHP: Version 5.1.5 Befehlsreferenz - Tutorial – Kochbuch – Forum zum Thema PHP und PHP: Hypertext Preprocessor sind die Seiten, die Du besuchen möchtest Phil Zitieren
Shadowman Geschrieben 20. August 2008 Geschrieben 20. August 2008 <?PHP $pfad = ""; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_lang . '<br>'; // Oder Ausgabe des kurzen Namen: //echo $datei_kurz . '<br>'; $fp2 = fopen($datei,'r') $inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen fclose($fp2); if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden { $fp3 = fopen($datei,'w'); fwrite($fp3,$datei_name.'\n'); // Einschreiben + Zeilenumbruch fclose($fp3); } } } pclose($fp); ?>[/PHP] achtung...NICHT getestet! Zitieren
Shadowman Geschrieben 20. August 2008 Geschrieben 20. August 2008 in der zeile mit: fwrite($fp3,$datei_name.'\n'); // Einschreiben + Zeilenumbruch müsste das noch geändert werden auf: fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch Zitieren
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 vielen dank erstmal bekomme da den fehler: Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\htdocs\namen.php on line 20 kann ich die datei so nicht anlegen lassen ? <?PHP $pfad = "C:\test"; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_lang . '<br>'; // Oder Ausgabe des kurzen Namen: //echo $datei_kurz . '<br>'; $fp2 = fopen($datei,'r') $inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen fclose($fp2); if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden { $fp3 = fopen($datei,'w'); fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch fclose($fp3); } } } pclose($fp); ?> [/PHP] Zitieren
Aiun Geschrieben 20. August 2008 Geschrieben 20. August 2008 dann schau dir die zeilen 19-21 doch an, da ist ein Syntaxfehler irgendwo. Zitieren
Reinhold Geschrieben 20. August 2008 Geschrieben 20. August 2008 bekomme da den fehler: Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\htdocs\namen.php on line 20 <?PHP $fp2 = fopen($datei,'r') ?> [/PHP] Da fehlt das Semikolon am Ende... hth Reinhold Zitieren
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 (bearbeitet) ups dankeschön jarnicht gesehen jetzt wenn ich mal alles rausnehme also nur: <?PHP $pfad = "C:\test"; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_kurz . '<br>'; //$fp2 = fopen($datei,'r'); //$inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen //fclose($fp2); //if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden //{ //$fp3 = fopen($datei,'w'); // fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch //fclose($fp3); //} } } pclose($fp); ?> [/PHP] da gibt es mir nur eine leere datei... kann ich den pfad so nicht angeben ? Bearbeitet 20. August 2008 von Hyäne Zitieren
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 hat sich erledigt...hab es anders gelöst Zitieren
Hyäne Geschrieben 21. August 2008 Autor Geschrieben 21. August 2008 hab das jetzt so gelößt. er ließt auch alle dateien aus aber er gibt nur ca. 4000 strings aus von ca. 8000. gibt es da eine max. bei den arrays ? <?php $dir = '****'; $files = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { array_push($files,$file); } } } //print_r($files); for ($i = 1; $i <= sizeof($files); $i++) { $id = substr($files[$i],0,5); $ids[$i] = $id; } $result = array_unique($ids); for ($i = 1; $i <= sizeof($result); $i++) { echo $result[$i]."<br>"; } ?> [/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.