Kann den Wrapper "https" nicht finden - hast du vergessen, ihn zu aktivieren, als du PHP konfiguriert hast?
Ist das problem in der Frage. Ich habe eine Gründliche Untersuchung für Lösungen in Bezug auf diese und ich weiß, es gibt Themen, die ich verfolgt habe Sie auch und hat nichts geklappt. That being said ich werde eine Liste heraus, genau alles, was ich bisher getan habe. Ich bin mit PHP 5.2.14 mit Zend-Debugging auf dem neuesten Eclipse-version auf meinem Windows XP-computer. Ich habe eine 1 GB RAM. Ich habe XAMPP laufen mit Apache, MySQL und FileZilla installiert.
Auf XAMPP habe ich Folgendes getan (Apache ausgeschaltet war, während dieser änderungen):
Angeklickt Admin aus dem XAMPP Control Panel und ging zu https://localhost/xampp/
. Von dort aus nahm ich die certs von dieser Linie auf der willkommen-Seite:
Für OpenSSL support bitte nutzen Sie den test-Zertifikat mit https://127.0.0.1 "oder" https://localhost.
Auf dem gleichen Abschnitt habe ich überprüft phpinfo()
. Unter 'Umgebung' SERVER["HTTPS"]
ist on
. Unter "Apache Environment", HTTPS
ist On
. Unter " PHP-Variablen, _SERVER["HTTPS"]
ist On
. Unter 'Phar', OpenSSL support
ist disabled
(installieren von ext/openssl). Ich weiß nicht, wie zu aktivieren, die Phar.
Nun über die Dateien, die sich in C:\xampp ich ging zu den PHP-Ordner. Unter der Produktion und in der Entwicklung von php.ini-Dateien (better safe than sorry), ich habe allow_url_fopen=On
, allow_url_include=On
, und ich entfernt das Semikolon, so dass extension=php_openssl.dll
ist nicht mehr auskommentiert. Ich habe sogar bestätigt, dass die .dll ist in den ext Ordner von PHP-Ordner. Beide libeay32.dll und ssleay32.dll sind in der PHP-und Apache-Ordner. Die Apache-Ordner nicht enthalten, die entweder produktiv oder php-Entwicklung.ini-Dateien.
Habe ich ging zu http://www.slproweb.com/products/Win32OpenSSL.html und installiert Win32 OpenSSL v1.0.0 d für die sichere Maßnahme.
Nun die Zeile code in Frage in meinem retrieve_website.php sieht wie folgt aus:
$urlquery = "https://www.googleapis.com/customsearch/v1?key=".$appid."&cx=".$google_searchid."&q=".$query."&alt=atom&num=".$results;
$xmlresults = file_get_contents($urlquery);
Habe ich zwei andere websites, die ich Abfrage, sondern Sie werden Ihnen per HTTP und Sie funktionieren gut. Ich habe auch diese Zeile von code-eingegeben in der Nähe des Ende des Skripts:
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "\n";
echo 'wrappers: ', var_dump($w);
Wenn ich es als PHP-Script, Eclipse, alles Ausgänge völlig in Ordnung, so wie ich es möchte zusammen mit diesen Ergebnissen:
openssl: yes
http wrapper: yes
https wrapper: yes
wrappers: array(10) {
[0]=>
string(5) "https"
[1]=>
string(4) "ftps"
[2]=>
string(3) "php"
[3]=>
string(4) "file"
[4]=>
string(4) "data"
[5]=>
string(4) "http"
[6]=>
string(3) "ftp"
[7]=>
string(13) "compress.zlib"
[8]=>
string(14) "compress.bzip2"
[9]=>
string(3) "zip"
}
Trotz all dieser änderungen, die ich gemacht habe (nachdem ich begann, Apache), ich bekomme immer noch den gleichen Fehler das erste mal, dass ich Zugriff auf meine PHP-Skript in Eclipse und Firefox über http://localhost/tutorial/retrieve_website.php:
Warning: file_get_contents() [function.file-get-contents]: Unable to find wrapper "https" - hast du vergessen, um es zu aktivieren bei der Konfiguration von PHP? in C:\xampp\htdocs\tutorial\retrieve_website.php in Zeile 29
Warning: file_get_contents(https://www.googleapis.com/customsearch/v1?key=entfernt API ID&cx=entfernt search-ID&q=Der+Teufel+ging+bis+zu+Georgia&alt=atom&num=5) [function.file-get-contents]: failed to open stream: Keine solche Datei oder Verzeichnis in C:\xampp\htdocs\tutorial\retrieve_website.php in Zeile 29
Warnung: DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in C:\xampp\htdocs\tutorial\retrieve_website.php auf der Linie 33
openssl: keine http-wrapper: ja https-wrapper: keine Wrapper: array(10) { [0]=> string(3) "php" [1]=> string(4) "Datei" [2]=> string(4) "Golf" [3]=> string(4) "data" [4]=> string(4) "http" [5]=> string(3) "ftp" [6]=> string(3) "PLZ" [7]=> string(13) "komprimieren.zlib" [8]=> string(14) "komprimieren.bzip2" [9]=> string(4) "phar" }
Was ist es, was ich übersehen haben oder nicht zu tun? Zu meinem eigenen wissen, habe ich alles getan, ich habe recherchiert über über HTTPS und OpenSSL
InformationsquelleAutor der Frage John M | 2011-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Löste ich es in XAMPP, indem Sie die Kommentarzeichen
;extension=php_openssl.dll
im/apache/bin/php.ini
trotz phpinfo() sagt mir/php/php.ini
war der geladenen ini-Datei.EDIT: ich denke, Ezra Antwort ist die beste Lösung direkt das hinzufügen der Erweiterung der Linie, um die entsprechende ini-Datei.
InformationsquelleAutor der Antwort kjetilh
Musste ich hinzufügen
extension=php_openssl.dll
zu meinemphp.ini
- Datei befindet sich imxampp/php/php.ini
. Irgendwie war es es nicht, nach dem hinzufügen und Neustarten von Apache hat alles gut funktioniert.InformationsquelleAutor der Antwort Ezra
nur fügen Sie zwei Zeilen in Ihrer php.ini-Datei.
seine Arbeit für mich.
InformationsquelleAutor der Antwort Roopchand
Ihr Apache wahrscheinlich nicht mit SSL-Unterstützung kompiliert. Verwenden Sie cURL anstelle von file_get_contents sowieso. Versuchen Sie diesen code, wenn es fehlschlägt, dann bin ich richtig.
InformationsquelleAutor der Antwort Dejan Marjanovic
Ich haben, aktivieren Sie die openssl-Erweiterung, und es funktioniert für mich 🙂
;extension=php_openssl.dll
zu
extension=php_openssl.dll
InformationsquelleAutor der Antwort Saran Pal
In meinem Fall, das Problem war wegen WAMP mit einer anderen php.ini für die CLI als Apache, so dass Sie Ihre Einstellungen vorgenommen, die durch die WAMP-Menü gelten nicht für CLI. Ändern Sie einfach die php-CLI.ini und es funktioniert.
InformationsquelleAutor der Antwort dtbarne
in OpenSuse 12.1 das einzige, was erforderlich war:
InformationsquelleAutor der Antwort TheSatinKnight
Diese Funktion können Sie nutzen, statt.
InformationsquelleAutor der Antwort actors315
Für mich, ich hatte zu kommentieren Sie diese Zeilen in php.ini:
"extern" ist nur anwendbar, wenn php_openssl.dll befindet sich im "ext" - Ordner.
Hinweis: ich hatte dies für zwei meiner php.ini-Dateien sind sonst würde es nicht funktionieren. Man befindet sich in der vs.php installation Ordner, und die andere auf auf den Ordner PHP
Quelle
InformationsquelleAutor der Antwort zeta
Auf dem MAC AMPPS, ich aktualisiert die php-5.5.ini mit dem folgenden und jetzt funktioniert es.
InformationsquelleAutor der Antwort Elye
Nach Schnüffelei den ganzen Tag, ich fand heraus, die Antwort, Dank dieser Anleitung:
http://piwigo.org/forum/viewtopic.php?id=15727
Grundsätzlich unter Eclipse -> Windows -> Preferences -> PHP-Dateien, gibt es einen Abschnitt, wo die .exe-und .ini verwiesen wird. Die ausgefallenen waren, die im Eclipse-Verzeichnis bei der Installation die PHP Development Tools SDK Feature von Finsternissen Installation Neuer Software im Hilfe-Menü.
Anstatt also, ich habe eine neue ausführbare Datei namens PHP 5.3.5 (CGI) und verwiesen die cgi.exe und .ini von xampp in der php-Ordner.
Danke webarto für geben Sie Ihre Zeit, um mir zu helfen.
InformationsquelleAutor der Antwort John M
Versuchen Sie dies:
InformationsquelleAutor der Antwort paprik
Bekam ich diese Fehlermeldung auch. Ich habe herausgefunden, dass meine PHP-version nicht habe openssl kompiliert, so einfach das hinzufügen der extension-Direktive in php.ini war nicht genug. Ich weiß nicht, wie Sie zu lösen haben, dies in Ihrem speziellen Fall, aber für mich, ich benutze macports, und der Befehl war nur:
InformationsquelleAutor der Antwort mason
Ich bin mit opsenSUSE Sprung, und ich hatte das gleiche Problem-es bedeutet, es gibt keine Unterstützung für OpenSSL. Dies ist, wie ich es behoben:
sudo service apache2 restart
Ist es, Sie sind fertig.
InformationsquelleAutor der Antwort mtchuente
Für diejenigen, die sich mit Winginx (nginx basiert, anstelle von Apache basiert), I fixed it mit diesen 4 Schritten:
Auf dem Tools Menü Treffer der Winginx PHP5 Config (nie Verstand die 5 im Namen...):
Wählen Sie die PHP-version, die Sie wollen, dass die php.ini zu ändern:
Auf dem PHP-Erweiterungen Registerkarte wählen Sie die php_openssl Verlängerung und trifft den Speichern - Taste:
neu starten, die entsprechende PHP-Dienst über die Taskleiste (Stop und Start):
InformationsquelleAutor der Antwort CPHPython
PHP7, in php.ini-Datei, entfernen Sie das ";" vor
extension=openssl
InformationsquelleAutor der Antwort Shusen Yi
Innerhalb der simple_html_dom.php ändern Sie den Wert des
$offset
variable aus-1
zu0
.dieser Fehler passiert meist, wenn Sie die Migration auf PHP 7.
HtmlDomParser::file_get_html
nutzt eine Standard-offset von-1
übergeben0
sollte dein problem lösen.InformationsquelleAutor der Antwort Tgold brain