Ich möchte innerhalb eines HTML-Code auf einen Button klicken, einen Shell-Befehl auszuführen, so:Sed-Befehl durch shell_exec nicht ausgeführt wird
In meinem HTML-Code:
<form action=execute.php method="post">
<input name="submit" type="submit" value="Reset">
</form>
execute.php:
<?php
$output = shell_exec("sed -i '2,3d' filename.txt");
//$output = shell_exec("cat filename.txt");
echo "<pre>$output</pre>";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<a href='$url'>Back</a>";
?>
der Zweck ist es, alle Zeilen einer Textdatei, aber die ersten ein zu entfernen.
Ich denke, dass der PHP-Code ordnungsgemäß ausgeführt wird, da, wenn ich den Shell-Befehl durch eine einfache Katze ändern, es wie erwartet funktioniert, aber ich kann nicht herausfinden, warum es nichts tut, wenn der Befehl sed
ausgeführt wird Ausdruck.
Ich habe überprüft, dass solche sed
Befehl funktioniert, wenn direkt in CLI ausgeführt und ich habe auch alle Berechtigungen Problem verworfen, da ich "filename.txt" auf 777 chmooded. In der Tat, wenn Sie den PHP-Code, um etwas Text an die Datei funktioniert auch. Zum Beispiel:
$output = shell_exec("echo hi >> filename.txt");
Nach der Suche nach Informationen wurde mir klar, dass das, was ich will direkt mit PHP mit getan werden kann:
file_put_contents("filename.txt", "");
file_put_contents("filename.txt", "First_line_content");
Aber jetzt bin ich nur neugierig, warum mein sed
Befehl tat nicht Arbeit.
I LAMP in einem Ubuntu Desktop renne mit folgenden sed
Version:
$ sed --version
sed (GNU sed) 4.2.2