2009-05-30 64 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编辑的人来说更友善。