PHP抓取HTTPS网页内容方法及错误处理
PHP抓取HTTPS网页内容方法及错误处理
最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的,跟普通的HTTP协议不同,当使用PHP里的函数 file_get_contents() 来获取API里提供的数据时,出现错误,使用的代码是这样的:
<?php $data = file_get_contents("https://www.scutephp.com"); ......
当运行上面的代码是遇到下面的错误提示:
PHP Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
为什么会出现这样的错误?
在网上经过一番搜索,发现遇到这样错误的人还不少,问题很直接,是因为在PHP的配置文件里没有开启一个参数,在我本机上是 /apache/bin/php.ini 里的 ;extension=php_openssl.dll 这一项,需要将前面的分号去掉。你可以用下面的脚本来检查你的PHP环境的配置:
$w = stream_get_wrappers(); 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);
运行上面的这个脚本片段,在我的机器上得到的结果是:
openssl: no http wrapper: yes https wrapper: no wrappers: array(10) { [0]=> string(3) "php" [1]=> string(4) "file" [2]=> string(4) "glob" [3]=> string(4) "data" [4]=> string(4) "http" [5]=> string(3) "ftp" [6]=> string(3) "zip" [7]=> string(13) "compress.zlib" [8]=> string(14) "compress.bzip2" [9]=> string(4) "phar" }
替代方案
发现错误,改正错误,这很简单,困难的是,发现错误后无法改正错误。我原本是想将这个脚本方法远程主机上,但我无法修改远程主机的PHP配置,结果是,我无法使用这一方案,但我们不能在一棵树上吊死,这条路走不通,看看有没有其它路。
另外一个我经常用的PHP里抓取内容的函数是 curl ,它比 file_get_contents() 更强大,提供了很多的可选参数。对于访问 HTTPS 内容的问题,我们需要使用的 CURL 配置参数是:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
你可以从语义上看出,它是忽略/跳过了SSL安全验证。也许这不是一个很好的做法,但对于普通的场景中,这几经足够了。
下面是利用 Curl 封装的一个能访问HTTPS内容的函数:
function getHTTPS($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); return $result; }

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP ist eine sehr beliebte serverseitige Programmiersprache, die häufig bei der Website-Entwicklung verwendet wird. Unter diesen gehören das Hoch- und Herunterladen von Dateien zu den am häufigsten verwendeten Funktionen von Websites, und PHP bietet eine Fülle von Funktionen und Techniken zur Implementierung dieser Funktionen. In diesem Artikel stellen wir die Datei-Upload- und Download-Techniken in PHP ausführlich vor, damit Sie Ihre Website effizienter entwickeln können. Datei-Upload Unter Datei-Upload versteht man das Senden von Dateien vom lokalen Computer an einen Remote-Server. Nach dem Hochladen der Dateien können wir diese Dateien speichern, verarbeiten und anzeigen. In PHP

Tipps zum Aufrufen der PHP-Kuaishou-API-Schnittstelle: So gehen Sie mit den von der Schnittstelle zurückgegebenen Fehlerinformationen um. Wenn Sie PHP zum Aufrufen der Kuaishou-API-Schnittstelle verwenden, stoßen wir häufig auf Situationen, in denen die Schnittstelle Fehler zurückgibt. Für von der Verarbeitungsschnittstelle zurückgegebene Fehlerinformationen müssen wir eine entsprechende Verarbeitung und Rückmeldung bereitstellen, um die Stabilität und Benutzererfahrung der Anwendung zu verbessern. In diesem Artikel werden einige Techniken zum Umgang mit von Schnittstellen zurückgegebenen Fehlerinformationen vorgestellt und entsprechende Codebeispiele bereitgestellt. Verwenden Sie try-catch, um Ausnahmen abzufangen. Beim Aufruf der API-Schnittstelle können einige Ausnahmefehler auftreten.

Mit der rasanten Entwicklung des Internets müssen immer mehr Websites Daten-Paging-Funktionen implementieren, um das Surferlebnis der Benutzer zu verbessern. In der Webentwicklung ist PHP eine der beliebtesten serverseitigen Programmiersprachen und die Daten-Paging-Funktion ist eine unverzichtbare Technologie in der PHP-Entwicklung. In diesem Artikel wird die Anwendungsmethode der Paging-Technologie in PHP im Framework vorgestellt und die Vor- und Nachteile verschiedener Paging-Lösungen verglichen. 1. Traditionelle PHP-Paging-Methode Bei der traditionellen PHP-Entwicklung erfordert die Implementierung der Daten-Paging-Funktion das Schreiben einer großen Menge Code und muss auf jeder Seite wiederholt werden.

Das Ersetzen von Zeilenumbrüchen in PHP ist ein Problem, das in der tatsächlichen Entwicklung häufig auftritt, insbesondere bei der Verarbeitung von Textdaten. Das Zeilenumbruchzeichen kann in verschiedenen Betriebssystemen unterschiedlich ausgedrückt werden. In Windows-Systemen lautet es normalerweise „“ und in Linux-Systemen „“. Daher müssen wir Zeilenumbrüche einheitlich verarbeiten, um sicherzustellen, dass die Textdaten ein normales Format haben. Dieser Artikel befasst sich mit der Technik des Ersetzens von Zeilenumbrüchen in PHP und stellt spezifische Codebeispiele bereit. 1. Verwenden Sie die in PHP integrierten Funktionen, um Zeilenumbrüche zu verarbeiten. PHP bietet einige integrierte Funktionen.

PHP-Programmiertipps: So finden Sie schnell fehlende Zahlen in einem Array Beim Programmieren stoßen Sie häufig auf Situationen, in denen Sie überprüfen müssen, ob bestimmte Zahlen in einem Array fehlen. Zu diesem Zeitpunkt benötigen wir eine schnelle und effektive Möglichkeit, die fehlenden Zahlen im Array zu lokalisieren, damit sie zeitnah verarbeitet werden können. In diesem Artikel wird eine PHP-basierte Programmiertechnik vorgestellt und anhand konkreter Codebeispiele gezeigt, wie fehlende Zahlen in einem Array schnell gefunden werden können. 1. Methode 1: Verwenden Sie eine Schleife, um das Array zu durchlaufen. Zuerst können wir das Array auf fehlende Zahlen prüfen, indem wir das Array durchlaufen. Spezifische Schritte

PHP-Programmierkenntnisse: Umgang mit Bildskalierung Im modernen Webdesign sind Bilder ein integraler Bestandteil und die Bildskalierung gehört zu den gängigen Vorgängen. Ob es darum geht, eine Sammlung von Bildern anzuzeigen oder auf die Bedürfnisse von Geräten unterschiedlicher Größe zu reagieren, die Bildskalierung spielt eine wichtige Rolle. In diesem Artikel wird erläutert, wie die Programmiersprache PHP für die Bildskalierung verwendet wird, und es werden Codebeispiele als Referenz beigefügt. 1. Verwenden Sie die GD-Bibliothek zur Bildskalierung. Die GD-Bibliothek ist eine leistungsstarke Bildverarbeitungsbibliothek in PHP. Wir können sie zur Implementierung der Bildskalierungsfunktion verwenden. Stellen Sie zunächst sicher, dass dies der Fall ist

Analyse der PHP-Fähigkeiten zur Verarbeitung hoher Parallelität Mit der Entwicklung des Internets werden die Anforderungen für gleichzeitige Besuche auf Websites immer höher. Als Programmiersprache für die Entwicklung von Websites benötigt PHP einige besondere Verarbeitungsfähigkeiten, um die Leistung und Stabilität bei hohem gleichzeitigem Zugriffsdruck zu verbessern. In diesem Artikel werden einige PHP-Techniken zur Verarbeitung hoher Parallelität vorgestellt und Codebeispiele bereitgestellt. Verwenden Sie PHP-FPMPHP-FPM (FastCGIProcessManager), einen offiziell von PHP bereitgestellten Prozessmanager, der dies effektiv tun kann

Im heutigen Internetzeitalter verarbeiten Anwendungen immer größere Datenmengen und Skalierbarkeit und Leistung sind wichtige Faktoren für den Anwendungserfolg. Wenn die Datenmenge in einer Anwendung einen bestimmten Umfang erreicht, ist eine einzelne Datenbank möglicherweise nicht in der Lage, die Anwendungsanforderungen zu erfüllen. Zu diesem Zeitpunkt muss die Datenbank geteilt werden, dh eine große Datenbank wird in mehrere kleinere Datenbanken unterteilt, um die Daten besser verarbeiten und verwalten zu können. Beim Datenbank-Sharding müssen Daten auf verschiedene Datenbanken verteilt werden, um die Last auszugleichen und die Leistung zu verbessern. Dazu muss ein Regelwerk so gestaltet werden, dass es einem bestimmten Ziel entspricht
