2009-05-30 1 views
2

Ich versuche, eine PHP-Datei zu erstellen, die einen Benutzer hinzufügt und public_html-Verzeichnis in Linux mit Hilfe der Funktion exec() (PHP) erstellen.Wie bearbeite ich eine Datei in der Befehlszeile?

ich folgenden Code in die PHP-Datei hinzufügen können

exec ("useradd -d/home/username -m username"); exec ("mkdir/home/Benutzername/public_html");

jetzt..Ich muss public_html zu smb.conf hinzufügen, um public_html in Windows zu bearbeiten.

ist es möglich, smb.conf in der Befehlszeile zu bearbeiten?

natürlich werde ich SSH als root verwenden, um die PHP-Datei auszuführen.

Antwort

1

Schauen Sie sich parse_ini_file() Funktion an.

Dann, wenn Sie in der INI-Datei schreiben wollen, versuchen Sie dies:

function writeini($file,$title,$item,$data) { 
    $source = file($file); 
    $t_match = "/^\[".$title."\]/i"; 
    $s_title = ""; 
    $c = "0"; 
    $o = ""; 
    foreach ($source as $temp) { 
    $c++; 
    if (preg_match("/^\[.+\]/i",$temp)) { 
      if (preg_match($t_match,$l_title)) { 
      $done = "yes"; 
      $f_write .= $item."=".$data."\n"; 
      } 
      $l_title = $temp; 
      $f_write .= $temp; 
     } elseif (preg_match("/^".$item."=/i",$temp) && preg_match($t_match,$l_title)) { 
      $done = "yes"; 
      $f_write .= $item."=".$data."\n"; 
      $l_title = ""; 
     } elseif ($c == count($source) && $done != "yes") { 
      if (preg_match($t_match,$l_title)) { 
      $f_write .= $temp.$item."=".$data."\n"; 
      } else { 
       $f_write .= $temp."[".$title."]\n".$item."=".$data."\n"; 
      } 
     } else { 
      $f_write .= $temp; 
     } 
    } 
    $ini_write = fopen($file,'w'); 
    fwrite($ini_write,$f_write); 
    fclose($ini_write); 
} 
+0

genau das, was ich will! Vielen Dank! – Moon

3

EDIT: Nachdem ich Roy Ricos Antwort gelesen habe, glaube ich, dass ich die Frage missverstanden habe.

Sie können entweder nano oder vi verwenden. Wenn Sie ein Anfänger sind, dann Nano wäre mehr geradlinig. verwenden Sie es einfach wie folgt:

nano /etc/samba/smb.conf 

Ich glaube, dass ctrl + o wird die Datei und Abfrage speichern + x verlassen wird.

1

Die meisten Benutzer verwenden entweder Vim oder Emacs als Befehlszeileneditor. Persönlich bevorzuge ich Emacs, aber versuchen Sie beides und sehen Sie, was Sie bevorzugen.

2

Möchten Sie die Datei mit Ihrem PHP-Skript bearbeiten, das in der Befehlszeile ausgeführt wird, oder verwenden Sie die Befehlszeile selbst, um die Befehlszeile zu bearbeiten (mithilfe einer interaktiven Shell)?

Wenn Sie versuchen, die Datei mit Ihrem PHP-Skript zu bearbeiten, müssen Sie die fopen, fwrite Befehle verwenden, und geben Sie Zugriff auf die Datei zu Ihrem Skript, dann werden Sie wahrscheinlich eine Menge von Sicherheitsbedenken, etc. Unterm Strich ist es mehr als eine schnelle Antwort, die Ihnen hier gegeben werden kann.

Wenn Sie eine interaktive Shell verwenden, dann sind vi und emacs großartige Editoren, aber sehr entmutigend, wenn Sie sie noch nie zuvor benutzt haben. pico und nano sind freundlicher gegenüber denen, die CL-Redakteure nicht kennen.