Jetzt musst du eine Schnittstelle hinterlassen, damit Nutzer ähnliche Konfigurationsdateien über die Weboberfläche ändern können; der Hauptweg ist, die Linux-Shell scrip{filter}t aus PHP aufzurufen, also fügst du jetzt eine Linux-Shell ein, die diese Konfigurationsdatei ändern kann.
Zunächst wird die Konfigurationsdatei wie folgt formatiert:
Beispiele sind wie folgt config.ini:
Die Konfigurationsdatei enthält 3 Einheiten, die drei Hauptaspekte repräsentieren: Datenbank, Geschäft, Offline; Jede Einheit hat ihren eigenen Feldnamen und Feldwert.
Der oben erwähnte Blog kann eine solche Konfigurationsdatei lesen, und vorerst werden wir diese Konfigurationsdatei über die Linux-Shell modifizieren.
Wir haben ein Programm namens modify_config_file entworfen und es mit einem Format wie ./modify_config_file unit1-field1=changed_value1 unit2-field1=changed_value2 modifiziert (Parameter können bei Bedarf hinzugefügt werden).
Es ist nicht schwierig, die Konfigurationsdatei zu ändern; 20–30 Zeilen können das Problem lösen. Basierend auf dem Prinzip "alle Eingaben sind schädlich" ist es jedoch notwendig, der Shell verschiedene Fehlertoleranz-Verarbeitungen hinzuzufügen; wenn die Benutzerparametereingabe falsch ist, um den Benutzer rechtzeitig daran erinnern und das Problem lokalisieren zu können; Folgendes basiert auf einer solchen ursprünglichen Absicht der Shell, natürlich lautet der Name modify_config_file:
Der Benutzer ändert die Konfiguration mit folgendem Befehl:
Die Ausgabe ist wie folgt:
Unter ihnen zeigt die erste Zeile an, dass das Zeilennummernintervall, in dem sich die BUSINESS-Einheit befindet, auf das Eröffnungsintervall achten muss; Die zweite Zeile stellt alle Übereinstimmungen mit den Feldliniennummern dar, da es mehrere Einheiten desselben Feldes geben kann; Die dritte Zeile gibt die Feldzeilennummer an, die schließlich in das Einheitsintervall fällt; Die vierte Zeile stellt das Ergebnis der Überarbeitung der Reihe dar.
Außerdem ist es sehr wahrscheinlich, dass die Benutzereingabe nicht dem Format entspricht, und folgende Fehler werden gemeldet und gezielt behandelt:
Wenn du es auf andere Konfigurationsdateien anwenden willst, musst du den Pfad und Dateinamen der Konfigurationsdatei im Skript ändern:
|