2010-11-28 2 views
3

Я использовал системные команды через файл php ..cd \, а затем сразу после нескольких попыток его остановки: | независимо от того, что я делаюСистема PHP ("cd "); не работает

<?php 
    $command = array("cd \","dir"); 
    $result = system($command[0], $return); 
?> 

ответ

1

Я думаю, что я понял, что проблема. Команда system() в PHP не создает экземпляр cmd.exe , а выполняет только команду и завершает работу. Вот почему при смене каталога с помощью команды CD .. каталог экземпляра, созданный системой(), изменен, а затем выйдет. Надеюсь, моя теория верна. XD

2

Попробуйте

$command = array("cd \\","dir"); 
0

в Linux мод:

$command = array("cd \\","dir"); 

в окнах мод:

$command = array("cd /","dir"); 
+0

Что делать, если вам нужно перенестись из окон в ОС Linux, для этого необходимо изменить множество строк! – RobertPitt 2010-11-28 14:50:37

3

Поддержка Windows слэши /, а также обратная косая черта \, поэтому, используя только косые черты, вы должны быть совместимы с перекрестными и менее обостряющимися в долгосрочной перспективе.

<?php 
    $command = array("cd /","dir"); 
    $result = system($command[0], $return); 
?> 

Wiki Path_Computing


Если у вас есть какие-либо ошибки, то, пожалуйста, отправьте их, поскольку этот вопрос не может быть каталог сеча, потому что вы сказали, что ранее работал.

0

У PHP есть своя команда изменения каталога: http://us3.php.net/manual/en/function.chdir.php. Однако это может не делать именно то, что вы хотите.

+0

http://lufi.dyndns-ip.com/cmd/?p=stackoverflow, как то, что я сказал на greenmatt, я хотел использовать системные команды. Фактически, на xp сейчас работает на xp. – kapitanluffy 2010-11-28 14:53:39

0

В моем тестировании (на Win 7 и XP) я счел необходимым избежать \ для каталога (т. Е. Вместо этого использовать \\). Или вы можете использовать косую черту. Кроме того, почему бы не использовать PHP chdir function вместо системного вызова?

<?php 
    echo getcwd() . "\n"; 
    chdir("\\"); 
    echo getcwd() . "\n"; 
?> 

Редактировать в ответ на комментарий «... я пытаюсь создать ЦМД в браузере вещи ....»: system function просто запускает команду вы указываете и возвращает. Он не будет (напрямую) влиять на процесс, вызывающий системную команду. Таким образом, системный вызов с командой изменения каталога не повлияет на работу рабочего каталога PHP-программы, если это то, что вы пытаетесь сделать.

+0

http: //lufi.dyndns-ip .com/cmd/i захотелось использовать системные команды. Фактически, на xp прямо сейчас. – kapitanluffy 2010-11-28 14:44:34

0

Почему вы не можете использовать две команды в такое же вызов системы(), используя разделитель?

<?php 
$result = system("cd \;".$command[0], $return);?> 
Смежные вопросы