get_file_contents 400 yanıt koduyla başarısız

2 Cevap

Şimdiye kadar garip sorunu var. I get_file_contents ile aynı sunucu üzerinde çalışan CGI script sonuç almak için çalışıyorum ve Ubuntu altında benim yerel makine hariç her yerde çalışır.

Ben (aynı senaryo üretimi üzerine çalışan) farklı bir sunucuya url almak için sorduğunuzda çalışır, farklı sunucusunda dağıtıldığında çalışır, ben allow_url_fopen set var kesinlikle eminim. Ama yerel bir sunucudan bu sayfayı almak için çalışıyorum, her zaman ben Apache hata günlüğüne failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request PHP tarafında ve [error] [client 127.0.0.1] request failed: error reading the headers olsun.

Peki ben onunla yapabilirim, ne başlıklar yüzden Apache ben aynı sonuçları için çimdik ne yapılandırma seçenekleri, alternatif, beni geri çevirmek ya da olmaz geçmesi gerekir?

2 Cevap

Ne hostname yerel sunucunuza başvurmak için kullanıyorsunuz? Belki de "localhost" diyorlar ve gerçek bir etki alanı adı bekliyor.

file_get_contents elle HTTP başlıklarını , bu gibi.

<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
// gave it a mime-type, also forced text plain.
// of course,  add any other headers you need.
    'header'=>"Accept: text/plain\r\n" .
              "Content-Type: application/x-www-form-urlencoded\r\n"
  )
);

// create the stream.
$context = stream_context_create($opts);

// open the file using the HTTP headers set above
$file = file_get_contents("your_url_here", false, $context);
?>

Bu işe yaramazsa, sizin isteğinizi işlemek için cURL kullanarak düşündünüz mü?