Nu moet je een interface laten zodat gebruikers vergelijkbare configuratiebestanden via de webinterface kunnen wijzigen; de belangrijkste manier is om de Linux-shell scrip{filter}t vanuit PHP aan te roepen, dus plak nu een Linux-shell die dit configuratiebestand kan wijzigen.
Ten eerste is het configuratiebestand als volgt opgemaakt:
Voorbeelden zijn als volgt, config.ini:
Het configuratiebestand bevat 3 eenheden, die 3 hoofdaspecten vertegenwoordigen: database, bedrijf, offline; Elke eenheid heeft zijn eigen veldnaam en veldwaarde.
De hierboven genoemde blog kan zo'n configuratiebestand lezen, en voorlopig gaan we dit configuratiebestand aanpassen via de Linux-shell.
We hebben een programma ontworpen genaamd modify_config_file en het aangepast met een formaat als ./modify_config_file unit1-field1=changed_value1 unit2-field1=changed_value2 (parameters kunnen indien nodig worden toegevoegd).
Het is niet moeilijk om het configuratiebestand te wijzigen; 20-30 regels kunnen het probleem oplossen. Echter, op basis van het principe van "alle invoer zijn schadelijk", is het noodzakelijk om verschillende fouttolerantie-verwerking aan de shell toe te voegen; als de gebruikersparameter verkeerd is, om de gebruiker op tijd te kunnen herinneren en het probleem te lokaliseren, is het volgende gebaseerd op zo'n oorspronkelijke bedoeling van de shell, uiteraard is de naam modify_config_file:
De gebruiker wijzigt de configuratie met het volgende commando:
De output is als volgt:
Onder hen geeft de eerste regel aan dat het regelnummerinterval waar de BUSINESS-eenheid zich bevindt, let op het openingsinterval; De tweede lijn vertegenwoordigt alle overeenkomsten met veldlijnnummers, aangezien er meerdere eenheden van hetzelfde veld kunnen zijn; De derde regel geeft het veldregelnummer aan dat uiteindelijk in het eenheidsinterval valt; De vierde regel vertegenwoordigt het resultaat van de herziening van de rij.
Daarnaast is het zeer waarschijnlijk dat de gebruikersinvoer niet overeenkomt met het formaat, en de volgende fouten zullen worden gerapporteerd en getarget:
Als je het wilt toepassen op andere configuratiebestanden, moet je het pad en de bestandsnaam van het configuratiebestand in het script aanpassen:
|