2012-07-05 6 views
3

У меня есть программа на языке C, которую я скомпилировал в exe, называемый хрустом.Запуск программы на C от php

Он берет строку и возвращает строку хэша. Он работал долгое время, но мне просто нужно было немного поменять его. Он отлично работает в терминале как таковом:

./crunch url-string/with-file.jpg 

Выплескивает симпатичную хэш-строку. В моем php я выполнял его как таковой:

$crunch = '~/domains/somewhere.net/html/api/crunch'; 
     $code = `$crunch $code`; 
     $code = mysql_real_escape_string(trim($code)); 

$ Код первоначально представляет собой строку, которая является URL-адресом. Он возвращает хеш, но не больше.

Я перекомпилировал C несколько раз. Просто не понимаю, я пробовал php exec(), passthru().

ИСПРАВЛЕНО:

Проблема была разница между моими дистрибутивами Mac Unix и Linux-сервера. Исправлена ​​ошибка входа в мой сервер и компиляции файла .c.

Бобы дядя, работает снова.

Спасибо заглядывает, я проверял все советы. Иногда устранение возможных перерывов помогает сосредоточиться на проблеме. Виртуальное пиво (или сверкающая вода) вокруг!

+1

ваших прогонов EXE при вызове вне PHP, но не работает с PHP? Это почти всегда проблема с разрешениями. – Brad

+0

Получение каких-либо фактических ошибок? Убедитесь, что пользователь Apache может выполнить его? – Brian

+1

Вы уверены, что командная строка не должна быть '../ crunch.exe', а не просто' ../ crunch'? –

ответ

1

Вздох ... другой несамоходных помогает пользователю ...

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

Принять к сведению на РАЗРЕШЕНИЙ.

+2

OP сказал, что они попробовали 'exec()'. – alex

+1

Затем им нужно будет внимательно прочитать! – Brian

+0

Разрешения, похоже, говорят только о запуске сервера MS, я нахожусь в Linux-окне. Странно, как раньше. – elliotrock

1

, вероятно, неполный список будет: exec(), system(), shell_exec(), backticks, popen(), proc_open(), passthru().

EDIT:

Проверить это предупреждение:

With safe mode enabled, the command string is escaped with escapeshellcmd(). Thus, echo y | echo x becomes echo y \| echo x. 

От function.popen.php

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