Frage

Ist es möglich, Ordner- und Dateiänderungen (durch Ereignisse) direkt auf PHP oder Node abzuhören, oder muss ich dafür meine eigene Methode erstellen?

Beispiel:Ich muss mir den Ordner anhören /user.Wenn ich diesem Verzeichnis eine Datei hinzufüge, erhält PHP oder Node die Informationen und wird ausgeführt PathEvent::fileAdded("/user/user.profile") zum Beispiel.Wenn ich einen Ordner umbenenne, wird er ausgeführt PathEvent::pathRenamed("/user/save1", "/user/save2").

Ich weiß, dass PHP kein Ereignissystem wie Node hat.Aber für PHP kann ich zum Beispiel eine Methode ausführen (die ich derzeit nicht kenne), die die Änderungen enthält, die seit der letzten Überprüfung aufgetreten sind.

Also...Ich brauche nur einen Weg, um mit der Suche zu beginnen. Ich weiß nicht genau, wie der Begriff dieser Suche lautet.Wenn du mir ein Beispiel zeigen kannst, wird es auch großartig sein!:P

War es hilfreich?

Lösung

Node.js bietet diese Funktionalität.Sie können darüber lesen Hier.

Einfaches Beispiel:

var fs = require('fs');

fs.watch('somedir', function (event, filename) {
    console.log(event);
    console.log(filename);
});

Notiz:

Beim Überwachen eines Verzeichnisses wird die Angabe des Dateinamenarguments im Rückruf nicht auf jeder Plattform unterstützt (derzeit wird es nur unter Linux und Windows unterstützt).Selbst auf unterstützten Plattformen ist die Angabe des Dateinamens nicht immer garantiert.Gehen Sie daher nicht davon aus, dass das Argument „Dateiname“ immer im Rückruf angegeben wird, und verfügen Sie über eine Fallback-Logik, wenn es null ist.

Andere Tipps

Wenn Sie Zugriff darauf haben, wie auf Dateien zugegriffen/geändert/hinzugefügt wird usw.Ich würde ein paar Tabellen in der Datenbank erstellen.Eine für Änderungsarten und eine für Änderung und deren Zeitstempel.

Wenn jemand etwas mit einer Datei macht, z. B. umbenennen.Es geht über Ihren Wrapper, der der Datenbank auch eine Einfügung mit dem aktuellen Zeitstempel hinzufügt.Wenn Ihr PHP-Skript ausgeführt wird, können Sie alle Änderungen seit dem letzten Mal abrufen.Also

select * from Log where ModifiedOn > $lastRun.

So verfolge ich Änderungen an DB-Tabellen.Ich hoffe das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top