Я использую функцию PHP exec () для выполнения кода c. Иногда вывод кода превышает ограничение памяти php, и он выдает PHP Fatal Error. Есть ли способ, которым я могу ограничить размер вывода, или размер массива, передаваемый в exec (), так что любой вывод за N символов игнорируется.
Я попытался поймать Fatal Error с помощью register_shutdown_function (), но это не похоже на работу. Любое другое решение также приветствуется.
Вы можете перенаправить вывод в файл (например, добавить > output.log
к команде) и прочитайте, сколько контента вам нужно из этого файла один раз exec()
сделано, или вы можете использовать proc_open()
вместо этого и поток для вывода и чтения только часть содержимого потока, когда выполнение заканчивается.
Я столкнулся с этой проблемой, когда я пытался получить вывод 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