2016-09-21 2 views
0

Прежде всего, я хотел бы попросить у вас терпения, так как я стал новым для PHP и программирования. В любом случае, мне нужно открыть внешнюю программу с помощью PHP-скрипта. Для этого я использую функцию exec. Проблема в том, что эта конкретная программа, которую мне нужно выполнить, продолжает закрываться через 1-3 секунды после выполнения скрипта PHP. И я действительно не знаю, почему это происходит.Программа продолжает закрываться после выполнения через PHP. Что делать?

Сначала я подумал, что это что-то с моим скриптом, но я попытался выполнить другую программу, а другой не закрыл, если я не закрыл браузер, даже если другая программа выполнена тот же разработчик.

Я не знаю, может ли это быть полезным, но ОС моей операционной системы - это Windows Server 2012 r2, и я использую Wampserver 3.0.

Что я пытался до сих пор:

  • Я попытался изменить memory_limit -1 (без ограничений) в php.ini
  • Я попытался изменить параметр max_post_size от 6M до 60M в php.ini

Может ли кто-нибудь мне помочь? Кстати, не против, если мой код не очень хорош. Я учусь сам, и я хочу улучшить. Если вы, ребята, можете дать мне несколько советов по улучшению моего кодирования, я буду благодарен! :)

Заранее благодарен!

Код:

<?php 

$cmd = exec('"<program directory path>"'); 
echo $cmd; 
header ("Location: <HTML page>"); 
exit(); 
$output = shell_exec('type <program log after execution>'); 
echo "<pre>" . $output . "</pre>"; 
?> 
+0

Есть ли что-нибудь в вашем журнале ошибок? (Возможно, в C: \ wamp \ logs) – TecBrat

+0

uh, 'shell_exec ('type ...'? Это UTTERLY не нужно. Вам не нужно запускать оболочку, чтобы просто выгружать содержимое файла. сделайте это отлично, например 'readfile()' –

+0

@MarcB, спасибо за головы! Я сразу же обнов свой код! – RecrutaMuttley

ответ

0

Я не знаю, что вы ожидаете, что ваш сценарий, тем не менее, я вижу несколько проблем там.

Первая проблема заключается в том, что вы пытаетесь отправить заголовок местоположения (с header()) после, который потенциально может отразить некоторые данные. Это не сработает, потому что заголовки обычно нужно отправлять перед выходом.

Вторая проблема заключается в безусловном exit() в середине вашего скрипта. exit() завершает текущий скрипт. Немедленно. Это означает, что все, что ниже этой строки, будет выполнено , а не. То есть вы не увидите вывод shell_exec(), а shell_exec() даже не запустится.

+0

Привет, друг! Спасибо за ответ. Я думал, что это так, но проблема, даже после того, как я прокомментировал se строк, и проблема все еще там. Это было первое изменение, которое я сделал в своем коде. – RecrutaMuttley

+0

Я только что удалил весь код, кроме кода exec. Проблема все еще сохраняется. знак равно – RecrutaMuttley

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