2012-03-13 4 views
0

Я готов выполнить команду зазывал через PHP, но я столкнулся, что команда не выполняется, вот команда:Exec в PHP работает неадекватно

exec('/cutycapt/CutyCapt --url="' . $source . '" --out="/home/user/NetBeansProjects/PhpProject1/htmlImage/example.png"'); 

я пытался как тестирование, чтобы выполнить следующие действия:

echo exec(' ls /cutycapt/');//print_r is the same 

только один файл возвращается в то время как эта команда возвратила им все

echo system(' ls /cutycapt/'); 

I попытался использовать «системный» метод вместо exec в первой команде, и результат был таким же

Что могло повлиять на команду, чтобы она не выполнялась?

обновление

случае я имею в виду бой с первой командой работы запустить ли я его в терминале или я запустить PHP скрипт в терминале тоже, но когда я запускаю его из браузера (РНР скрипт) это не работает !!

+0

Разрешения? У вас достаточно прав для выполнения команды в этой папке? – Sornakumar

+0

Примеры 'ls' - ожидаемое поведение; 'exec' возвращает последнюю строку вывода. Что заставляет вас думать, что первая команда не выполняется? Есть ли что-то в ваших журналах ошибок? – geoffspear

+0

@Wooble Sir, когда я запускаю команду в терминале, она занимает около 10 секунд, и она создает фотографию по пути out = "/ home/user ... – Hilmi

ответ

1

В случае system и exec последней строки из результата команды получает возвращается. Если вам нужно выполнить команду и все данные из команды, переданной напрямую без каких-либо помех, используйте функцию passthru().

1

У меня была такая же проблема с внешними командами в php. Проблема связана с правами доступа к файлам. Я использовал библиотеку «vchiq», и ошибка была «* не удалось открыть экземпляр vchiq». This page может работать для вас.