Команда PHP system () не отображает вывод в браузере

#php #ssl

#php #ssl

Вопрос:

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

Это мой код:

 <?php

system("curl --insecure -v https:example.com 2>amp;1 | awk 'BEGIN { cert=0 } /^* SSL connection/ { cert=1 } /^*/ { if (cert) print }' | grep 'SSL connection'");


?>

  

Комментарии:

1. Из любопытства, какой смысл выдавать внешний канал команд для установления HTTP-соединения? Это в основном значительно усложняет проверку ошибок, потому что вы перемещаете всю логику в черный ящик. В любом случае, вы должны хотя бы использовать $return_var параметр , чтобы выяснить, сработал ли системный вызов.

2. Да, чувак, я понял это позже, я использую curl с PHP, вместо того, чтобы выдавать системную команду для получения алгоритма шифрования.

Ответ №1:

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

Проблема заключается в недопустимом URL, переданном CURL.

Изменить
https:example.com
Для
https://example.com # добавить косые черты

Комментарии:

1. Спасибо за ваш ответ, но вместо этого я использовал curl в PHP вместо выдачи системной команды, потому что это небезопасно.

2. @achkar69 Расширение PHP Curl по сути является оболочкой для той же библиотеки, которую использует командная строка curl.