php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-09-2003, 21:55
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datei auslesen mit fileatime()

Hallo,
ich habe ein Script das die in einem Verzeichnis enthaltenen
Dateien ausliest und auflistet.
Ich möchte gerne nur die Dateien auflisten, die nicht älter
als 60 Sekunden sind.
Ich habe in folgendem Script vergeblich versucht fileatime()
unterzubringen.
Bei einem Test mit einer einzelnen Datei hatte es aber funktioniert.

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {

if (
$file != "." && $file != ".." && $file != "" ) {

$file ereg_replace(".php","",$file);
$test .= " ".$file." - ";
}

Dieser Test mit einer einzelnen Datei hat funktioniert:
PHP-Code:
$zeit fileatime("userlist/".$username);
$zeit2 $zeit 30;

if(
$zeit2-$zeit 30) {
echo
"";
}
else{
echo
"$zeit";

Eingebunden in erstgenanntes Script gibt gar keine Ausgabe:
PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {

if (
$file != "." && $file != ".." && $file != "" ) {

$zeit fileatime("userlist/".$username);
$zeit2 $zeit 30;

if(
$zeit2-$zeit 30) {
$file ereg_replace(".php","",$file);
$test .= " ".$file." - ";
}
}
}
closedir($handle); 
Dies hat auch nicht funktioniert:

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {

if (
$file != "." && $file != ".." && $file != "" && (time()-fileatime($file) < 60 ) {

$file ereg_replace(".php","",$file);
$test .= " ".$file." - ";
}
}

closedir($handle); 
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 01-09-2003, 22:07
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

das script ist doch schon falsch:

PHP-Code:
$zeit fileatime("userlist/".$username); // zeit = 50
$zeit2 $zeit 30// zeit2 = 80

if($zeit2-$zeit 30) { // 80 - 50 = 5 !> 30
echo""// was soll das?
}
else{
echo
"$zeit"// würde 50 ausgeben, da 30!>30 ist klappt das aber nicht

oder sehe ich das falsch?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 01-09-2003, 22:13
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
das war nur zum Testen ob das überhaupt funktioniert.

Einbinden möchte ich das in das erste, oberste Script.
Dort werden jetzt alle Dateien ausgegeben, ich hätte
gerne aber nur die Ausgabe der Dateien die in den
letzen 60 Minuten 'benutzt' wurden.
Dies wird mit 'touch()' gemacht. Wird die Datei 60 sec. nicht
mehr 'berührt', so ist sie für mich 'alt' und soll nicht mehr
aufgelistet werden.

Gruss
Heiner
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2003, 22:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

aber wenn der testcode schon nicht korrekt ist, wie soll denn der andere korrekt sein?

Du hast es doch da übernommen.

also versuch erstmal deinen code zu verstehen (so wie ich es mit den kommentaren gemacht hab).
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 01-09-2003, 22:45
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe dieses Beispiel nur zum Testen benutzt ob überhaupt
eine Anzeige kommt. Du hast natürlich recht, die Rechenbeispiele
sind nicht richtig, haben aber 2 unterschiedliche Ergebnisse, wie
gesagt, zum Testen gebracht. Hätte ich vielleicht nicht posten
sollen, wollte aber damit zeigen das ich mir schon etwas Arbeit
damit gemacht habe um nicht, wie leider öfter hier im Forum,
angeranzt zu werden das man sich hier nur fertige Lösungen
holt um sich die Arbeit zu sparen.

Dieser Versuch müsste eigentlich funktionieren, klappt aber
nicht. Wie gesagt, Dateien auslesen die nicht älter als 60 sec.
sind.
Hast Du vielleicht noch eine Idee dazu?

Datei soll nicht . und nicht .. und nicht leer sein und nicht älter
als 60 Sekunden.

(time()-fileatime($file) < 60)

12:00:00 Uhr - 11:55:00 Uhr = 300 Sekunden, Datei wird nicht gelistet
12:00:00 Uhr - 11:59:30 Uhr = 30 Sekunden, Datei wird gelistet.

Natürlich ist irgendwo ein Gedankenfehler oder ein Scriptfehler
den ich nicht erkenne, deshalb bitte hier ja auch um Hilfe.

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {

if (
$file != "." && $file != ".." && $file != "" && (time()-fileatime($file) < 60 ) {

$file ereg_replace(".php","",$file);
$test .= " ".$file." - ";
}
}

closedir($handle); 
Mit Zitat antworten
  #6 (permalink)  
Alt 01-09-2003, 22:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Natürlich ist irgendwo ein Gedankenfehler oder ein Scriptfehler
den ich nicht erkenne, deshalb bitte hier ja auch um Hilfe.
Die soll dir gewährt werden.

hab den fehler leider auch noch nicht gespottet, kann (will-aus den von dir genannten Gründen) dir also nur beim debugging helfen.

lass dir mal time() und die zeit der datei echoen unm von hand zu vergleichen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 01-09-2003, 23:03
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
das hatte ich schon gemacht. Es standen dann auf der Seite
beide timestamps. Beim Testen mit einer einzelnen Datei
kamen also die Ausgaben, beim Testen durch Subtraktion
kamen auch entsprechende, nachvollziehbare Ergebnisse.

Das Problem scheint hier zu sein, dass Daten aus mehreren Dateien
ausgelesenen werden zum Verarbeiten?

Gruss
Heiner
Mit Zitat antworten
  #8 (permalink)  
Alt 01-09-2003, 23:08
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
$pfad=realpath('userlist');
$handle=opendir($pfad);
while (
$file readdir ($handle))
  if (
is_file($pfad.$file))
    echo 
'Name: '.$file.'  time: '.(time()).'    
fileatime: '
.fileatime($pfad.$file).'    
Differenz: '
.(time()-fileatime($pfad.$file).'<br />';
closedir($handle); 
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 01-09-2003, 23:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

@heiner: da du in der schleife arbeitest, sollte aber genau das kein problem sein.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 02-09-2003, 00:16
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
Vorschlag von mrhappiness auf die Schnelle etwas geändert, zeigte 1:1 nichts an:

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {
if (
$file != "." && $file != ".." && $file != "" ) {

$zeit1 fileatime('userlist'.'/'.$file);
$zeit2 time()-$zeit1;

echo
"<br>Name: " .$file"<br>";
echo
"Zeit1: " .$zeit1"<br>";
echo 
"Zeit2: " .$zeit2"<br>";
}
}
closedir($handle); 
Ergab in der Ausgabe:

Name: Rob
Zeit1: 1062453727
Zeit2: 8

Name: Isarbiker
Zeit1: 1062453728
Zeit2: 7

Name: Boxi
Zeit1: 1062453729
Zeit2: 6

Name: Derdad
Zeit1: 1062453728
Zeit2: 7

Name: Railie
Zeit1: 1062453735
Zeit2: 0

Irgendetwas stimmt nicht mit:

$zeit2 = time()-$zeit1;

{EDIT}
Stimmt doch, ist ja die Differenz.
Ich versuche es dann noch mal weiter.

Gruss
Heiner

Geändert von Heiner (02-09-2003 um 00:21 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 02-09-2003, 00:20
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

bau diese abfrage mal zusätzlich ein:

if(time() - fileatime('userlist'.'/'.$file) < 60)
echo 'diese Datei ist okay';

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {
if (
$file != "." && $file != ".." && $file != "" ) {

$zeit1 fileatime('userlist'.'/'.$file);
$zeit2 time()-$zeit1;

if(
time() - fileatime('userlist'.'/'.$file) < 60)
echo 
'diese Datei ist okay';

echo
"<br>Name: " .$file"<br>";
echo
"Zeit1: " .$zeit1"<br>";
echo 
"Zeit2: " .$zeit2"<br>";
}
}
closedir($handle); 
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #12 (permalink)  
Alt 02-09-2003, 01:25
Heiner
 Registrierter Benutzer
Links : Onlinestatus : Heiner ist offline
Registriert seit: Jan 2002
Beiträge: 139
Heiner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

danke für eure Hilfe, das ist jetzt die Lösung:

PHP-Code:
$handle=opendir('userlist');
while (
$file readdir ($handle)) {

$zeit1 fileatime('userlist'.'/'.$file);
$zeit2 time()-$zeit1;

if (
$file != "." && $file != ".." && $file != "" && $zeit2 30) {

$file ereg_replace(".php","",$file);
$test .= " ".$file." - ";
}
}
closedir($handle); 
Gruss
Heiner
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:21 Uhr.