Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: php и shell
Форумы портала PHP.SU » » Операционная система и системные вызовы » php и shell

Страниц (1): [1]
 

1. Budulianin - 17 Августа, 2011 - 12:18:43 - перейти к сообщению
Всем привет. Мне нужно через php запускать shell скрипты на серваке. Как это можно осуществить? Что посоветуете?
2. EuGen - 17 Августа, 2011 - 12:33:41 - перейти к сообщению
http://php.su/functions/?exec и прочее (system, passthru)
3. Budulianin - 17 Августа, 2011 - 12:52:19 - перейти к сообщению
EuGen пишет:
http://php.su/functions/?exec и прочее (system, passthru)


А как ими пользоваться? на примере shell скрипта
4. EuGen - 17 Августа, 2011 - 12:59:57 - перейти к сообщению
Вот пример -
Цитата:
PHP:
скопировать код в буфер обмена
  1. public function getMAC($ip=null)
  2.     {
  3.         if((!$ip && !$this->sCurrentIP) || !$this->_arp_allowed())
  4.         {
  5.             return null;
  6.         }
  7.         $ip=$ip?$ip:$this->sCurrentIP;
  8.         $rgMatches=array();
  9.         if(PHP_OS=='WINNT')
  10.         {
  11.            exec("arp -a", $rgResult);
  12.            $sMacTemplate="/[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}/i";
  13.            foreach($rgResult as $key=>$value)
  14.            {
  15.               if (strpos($value, $ip)!==FALSE)
  16.               {
  17.                  preg_match($sMacTemplate, $value, $rgMatches);
  18.                  break;
  19.               }
  20.            };
  21.         }
  22.         else
  23.         {
  24.            exec("arp -a | grep $ip", $rgResult);
  25.            if(count($rgResult))
  26.            {
  27.                $sMacTemplate="/[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}/i";
  28.                preg_match($sMacTemplate, $rgResult[0], $rgMatches);
  29.            }
  30.         }
  31.         return count($rgMatches)?$rgMatches[0]:null;
  32.     }

(полный класс здесь - http://forum.php.su/topic.php?forum=35&topic=750)
5. Budulianin - 17 Августа, 2011 - 13:05:00 - перейти к сообщению
в exec() пишутся shell команды?
6. EuGen - 17 Августа, 2011 - 13:08:02 - перейти к сообщению
Так написано же в её описании. Да, в exec() передаются готовые команды для ОС.
7. Budulianin - 17 Августа, 2011 - 13:09:54 - перейти к сообщению
EuGen пишет:
Так написано же в её описании. Да, в exec() передаются готовые команды для ОС.


Спасибо, буду разбираться

 

Powered by ExBB FM 1.0 RC1