curl -v 'something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1'
возвращает 200, но используя
curl -v something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1
возвращает 400. Почему эти цитаты имеют значение?
У вашего URL есть символы, которые ваша оболочка распознает как специальные. Скорее всего, &
, которое является сигналом для UNIX-ish-оболочек, чтобы поместить команду в фоновом режиме. Таким образом, вы эффективно выполняете три команды:
curl -v something.com:12684/CAB/keyfile=?r=ORE_0 t=VOD p=1
Вы не видите вывод ошибки оболочки, потому что последние два являются действительными конструкциями оболочки.
Всегда указывайте свои аргументы. Если в PHP используется escapeshellarg
. Лучше, используйте встроенную curl
или стороннюю библиотеку, такую как Guzzle .