PHP ограничивает размер вывода exec ()

Я использую функцию PHP exec () для выполнения кода c. Иногда вывод кода превышает ограничение памяти php, и он выдает PHP Fatal Error. Есть ли способ, которым я могу ограничить размер вывода, или размер массива, передаваемый в exec (), так что любой вывод за N символов игнорируется.

Я попытался поймать Fatal Error с помощью register_shutdown_function (), но это не похоже на работу. Любое другое решение также приветствуется.

1

Решение

Вы можете перенаправить вывод в файл (например, добавить > output.log к команде) и прочитайте, сколько контента вам нужно из этого файла один раз exec() сделано, или вы можете использовать proc_open() вместо этого и поток для вывода и чтения только часть содержимого потока, когда выполнение заканчивается.

1

Другие решения

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

Когда я использовал shell_exec он не имеет ограничения на вывод и возвращает полный вывод

Например:

$output = shell_exec('curl -k -X GET -H "Accept: application/json" -H "Content-Type: application/json" "http://localhost:8000/services"');
echo "<pre>$output</pre>";

Вы можете прочитать больше о документации PHP shell_exec

0

По вопросам рекламы [email protected]