2009-05-30 3 views
2

Я пытаюсь создать php-файл, который добавляет пользователя и создает каталог public_html в linux с помощью функции exec() (php).как отредактировать файл в командной строке?

Я могу добавить следующий код в файл PHP

Exec ("useradd -d/главная/имя пользователя -m имя пользователя"); exec ("mkdir/home/username/public_html");

now..Я должен добавить public_html в smb.conf для работы public_html в окнах.

можно ли изменить smb.conf в командной строке?

Конечно, я собираюсь использовать SSH как root для выполнения php-файла.

ответ

1

Посмотрите на функцию parse_ini_file().

Тогда, если вы хотите написать в ини файле попробовать это:

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

3

EDIT: После прочтения ответа Роя Рико я считаю, что неправильно понял вопрос.

Вы можете использовать nano или vi. Если вы новичок, то nano будет более прямолинейным. Просто используйте его так:

nano /etc/samba/smb.conf 

Я считаю, что ctrl + o сохранит файл, а ctrl + x выйдет.

1

Большинство людей используют Vim или Emacs в качестве редактора командной строки. Лично я предпочитаю emacs, но попробуйте оба и посмотрите, что вы предпочитаете.

2

Вы хотите отредактировать файл, используя скрипт php, выполняемый в командной строке, или собираетесь ли вы самостоятельно использовать командную строку для редактирования командной строки (используя интерактивную оболочку)?

Если вы пытаетесь отредактировать файл с помощью php-скрипта, вам придется использовать команды fopen, fwrite и предоставить доступ к файлу для вашего скрипта, тогда вы, вероятно, столкнетесь с большим количеством проблемы безопасности и т. д. Итог, это более чем быстрый ответ, который можно дать вам здесь.

Если вы используете интерактивную оболочку, то vi и emacs являются отличными редакторами, но очень сложными, если вы никогда не использовали их раньше. pico и nano более дружелюбны к тем, кто не знаком с редакторами CL.

Смежные вопросы