Ich habe Probleme beim Aufrufen einer URL aus PHP-Code. Ich muss einen Dienst mit einer Abfragezeichenfolge aus meinem PHP-Code aufrufen. Wenn ich die URL in einen Browser eingebe, funktioniert es in Ordnung, aber wenn ich file-get-content () verwende, um den Anruf zu tätigen, erhalte ich:
Warnung: Datei-Get-Inhalt (http: // ....) konnte Stream nicht öffnen: HTTP-Anfrage fehlgeschlagen! HTTP / 1.1 202 Akzeptiert in ...
Der Code, den ich benutze, ist:
$query=file_get_contents('http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv');
echo($query);
Wie gesagt - Anruf aus dem Browser und es funktioniert gut. Irgendwelche Vorschläge?
Ich habe es auch mit einer anderen URL versucht wie:
$query=file_get_contents('http://www.youtube.com/watch?v=XiFrfeJ8dKM');
Das funktioniert gut ... könnte es sein, dass die URL, die ich anrufen muss, eine Sekunde enthält http://
?
php
api
query-string
file-get-contents
nicht definiert
quelle
quelle
CURLOPT_USERAGENT
war in meinem Fall sehr wichtig, danke!Könnte das dein Problem sein?
quelle
urlencode()
auf den GET-Parametern löste das Problem.quelle
get_url
tatsächlich sein sollte,get_fcontent
da Sie den Namen der Funktion selbst geändert haben. Dies ist eigentlich ein rekursiver Funktionsaufruf, der erneut versucht, den URL-Inhalt durch Ändern einiger Parameter abzurufen.file_get_contents()
verwendet diefopen()
Wrapper, daher ist der Zugriff auf URLs über dieallow_url_fopen
Option in der php.ini eingeschränkt.Sie müssen entweder Ihre php.ini ändern, um diese Option zu aktivieren, oder eine alternative Methode verwenden, nämlich cURL - die mit Abstand beliebteste und, um ehrlich zu sein, Standardmethode, um das zu erreichen, was Sie versuchen.
quelle
file_get_contents()
er an einer anderen URL gearbeitet hat. Trotzdem ist dies immer noch ein guter Tipp für andere, die dieses Problem haben.Grundsätzlich müssen Sie einige Informationen mit der Anfrage senden.
Versuche dies,
Das hat bei mir geklappt
quelle
Ich stelle fest, dass Ihre URL Leerzeichen enthält. Ich denke, das ist normalerweise eine schlechte Sache. Versuchen Sie, die URL mit zu codieren
und dann anrufen
und sehen, ob Sie besseres Glück haben.
quelle
Ich habe ein ähnliches Problem, ich habe die YouTube-URL analysiert. Der Code ist;
Dann
$this->video_url
merke ich, dass das Leerzeichen enthalten. Ich habe das mit gelösttrim($this->video_url)
.Vielleicht hilft es dir. Viel Glück
quelle
Ich bin mir nicht sicher über die Parameter (mpaction, format), ob sie für die amazonaws-Seite oder ##. ## angegeben sind.
Versuchen Sie, die URL urlencode () .
quelle
quelle
Ich habe ein ähnliches Problem.
Aufgrund einer Zeitüberschreitung!
Timeout kann wie folgt angezeigt werden:
quelle
Benutze das
quelle