2009-05-30 40 views
2

我想創建一個php文件,添加一個用戶並使用exec()函數(PHP)在Linux中創建public_html目錄。如何在命令行上編輯文件?

我可以添加以下代碼到PHP文件

EXEC(的 「useradd -d /家/用戶名-m用戶名」); exec(「mkdir/home/username/public_html」);

現在..我必須將public_html添加到smb.conf以在Windows上工作public_html。

是否可以在命令行上編輯smb.conf?

當然,我將使用SSH作爲root來執行php文件。

回答

1

看看parse_ini_file()函數。

然後,如果你想要寫ini文件裏面試試這個:

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

正是我想要的!謝謝! – Moon 2009-05-30 02:43:18

3

編輯:在閱讀羅伊里科的答案後,我相信我誤解了這個問題。

您可以使用nano或vi。如果你是初學者,那麼nano將會更直接。簡單地使用它就像這樣:

nano /etc/samba/smb.conf 

我相信ctrl + o將保存文件和ctrl + x將退出。

1

大多數人使用Vim或Emacs作爲他們的命令行編輯器。就個人而言,我更喜歡emacs,但嘗試兩種,看看你更喜歡。

2

您是否正在使用在命令行上執行的php腳本編輯文件,或者您是否要自己使用命令行編輯命令行(使用交互式shell)?

如果您試圖用您的php腳本編輯文件,您將不得不使用fopen,fwrite命令以及將文件訪問權限授予您的腳本,那麼您可能會遇到很多安全問題等等。總之,這不僅僅是一個可以在這裏給你的快速答案。

如果您使用的是交互式shell,那麼vi和emacs是非常棒的編輯器,但如果您以前從未使用過它們,那麼它將非常令人生畏。 pico和nano對那些不熟悉CL編輯的人來說更友善。

相關問題