2015-02-06 2 views
1

Я новичок в функции exec и вам нужна помощь при выполнении внешнего php-файла. Мой код файлов являютсявыполнить внешний php-файл с помощью exec()

script.php (главный файл):

<?php 
$path = 'C:/xampp/htdocs/user/execute.php'; 
exec($path, $output,$return); 
var_dump($return); 
echo "hi"."<br>"; 
echo "end";?> 

execute.php (вызова файла):

for($i=0;$i<10;$i++){ 
echo "hello"."<br>"; 
} 

пытается выполнить файл вызова

+1

Зачем вам нужен 'Exec()' просто включить файл ?! – Rizier123

+1

Но ... почему вы хотите запустить его с помощью exec()? Я не могу придумать причины, чтобы когда-либо делать это. –

+2

'exec ('php'. $ Path, $ output, $ return);' Вам может потребоваться изменить 'php' на полный путь исполняемого файла. –

ответ

0

Добавление

exec("php execute.php > /dev/null &"); 

решить мои problem..Thanks все

+0

это для Linux-систем, вопрос был в коде для систем Windows. Ты глупая дева Ребекка. : P;) – mondjunge

+0

@mondjunge: я использовал тот же ответ, который был предложен u, но единственное, что было сделано, это инструкция exec, поскольку мне нужен другой файл, который будет выполнен в фоновом режиме, для вашего кода мне пришлось ждать другого файл, который нужно выполнить ..... – Rebecca

0

Прежде всего, поскольку ребята сказали в комментариях, вам вообще не нужно exec(). Вы можете только include этот файл.

В любом случае, exec() функция выполняет внешняя программа. Файл .php является не программой, это просто скрипт, который выполняется программой php.

Таким образом, вы можете запустить его любит:

exec('php ' . $path, $output,$return); 

php также может потребовать от вас, чтобы дать полный путь к его исполняемому файлу, если он не доступен во всем мире.

http://php.net/manual/en/function.exec.php

2

exec для выполнения системных функций, а не для запуска сценариев. (Посмотрите на руководство, это помогает: http://php.net/manual/de/function.exec.php)

Чтобы достичь того, чего вы хотите, вы могли бы пройти путь к PHP исполняемый файл и добавить скрипт в качестве параметра, например:

<?php 
$phpExecutable = 'C:/xampp/bin/php.exe' 
$path = 'C:/xampp/htdocs/user/execute.php'; 
exec($phpExecutable." ".$path, $output,$return); 
var_dump($return); 
echo "hi"."<br>"; 
echo "end";?> 

Должно работать , Я не знаю, где находится ваш исполняемый файл php, поэтому, пожалуйста, адаптируйте его к своему местоположению.

Счастливое кодирование.

+0

Возможно, вам понадобится использовать «C: /xampp/bin/php-cli.exe» –

+0

@mondjunge: я пробовал свой код, но все же вижу, что после того, как мой другой вызываемый файл выполнен, выполнение основного файла. Мне нужно вызвать вызываемый файл и поместить его в фоновый режим и сделать основной файл до тех пор. Пожалуйста, помогите – Rebecca

+0

Я никогда не работал с подпроцессами на PHP. Это возможно, но вам нужно выяснить это самостоятельно или задать новый вопрос. Вот PHP-функция, которая вам, возможно, понадобится, чтобы сделать то, что вы хотите: http://php.net/manual/en/function.pcntl-fork.php Также следует обратить внимание на Observer/Observerable Pattern, но я не уверен, что это возможно в PHP. – mondjunge

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