Auch wenn diese alte Frage ist, kann diese Antwort sein kann jemand helfen wenn das gleiche Problem auftritt.
Um dies zu umgehen, stellen Sie sicher, dass:
allow_url_fopen
ON ist, überprüfen Sie in php.ini
Datei.
url
ist eine gültige URL. Um einige Issuer über das Übergeben der Variablen zu überspringen, können Sie http_build_query
- verwenden Rückkehr von Json ist gültig. Sie können überprüfen, ob die Rücksendung gültig ist mit jsonlint.com
stream_context
ist bereits so eingerichtet file_get_contents
weiß, wie die Anfrage zu behandeln ist. Obwohl wir Daten über HTTPS setzen, müssen wir http context
verwenden. Wir setzen method
-PUT
, Content-type
-application/json
, Accept
zu application/json
, Connection
zu close
und Content-length
der Länge unserer JSON-String. Wir stellen diese Daten über HTTP1.1, also setzen wir auf 1.1
. Wir senden den JSON in den Hauptteil der Anfrage, also legen wir dies im Inhalt fest. Und da wir HTTPS verwenden, müssen wir die ssl
Einstellungen konfigurieren.
$context = stream_context_create([ 'http' => [ 'method' => 'PUT', 'header' => "Content-type: application/json\r\n" . "Accept: application/json\r\n" . "Connection: close\r\n" . "Content-length: " . strlen($json_data) . "\r\n", 'protocol_version' => 1.1, 'content' => $json_data ], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false ] ]);
setzen schließlich die Daten von file_get_contents
wie dieser Aufruf:
$getData = file_get_contents($url, false, $context);
$results = json_decode($getData, TRUE);
Hopely nützlich, danke.
'var_dump' die Variable' $ result'. Vielleicht bekommst du nicht einmal den Inhalt von der URL. – rinukkusu
'" url "' ist es real oder Sie übergeben einen gültigen Pfad einer Datei? –
url ist nicht real url es ist nur für ein Beispiel eingefügt – Wojtokuba