Maison développement back-end tutoriel php PHP抓取HTTPS网页内容方法及错误处理

PHP抓取HTTPS网页内容方法及错误处理

Jun 20, 2016 pm 01:00 PM
php技巧

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");
......
Copier après la connexion

当运行上面的代码是遇到下面的错误提示:

PHP Warning:  file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
Copier après la connexion

为什么会出现这样的错误?

在网上经过一番搜索,发现遇到这样错误的人还不少,问题很直接,是因为在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);
Copier après la connexion

运行上面的这个脚本片段,在我的机器上得到的结果是:

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"
}
Copier après la connexion

替代方案

发现错误,改正错误,这很简单,困难的是,发现错误后无法改正错误。我原本是想将这个脚本方法远程主机上,但我无法修改远程主机的PHP配置,结果是,我无法使用这一方案,但我们不能在一棵树上吊死,这条路走不通,看看有没有其它路。

另外一个我经常用的PHP里抓取内容的函数是 curl ,它比 file_get_contents() 更强大,提供了很多的可选参数。对于访问 HTTPS 内容的问题,我们需要使用的 CURL 配置参数是:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
Copier après la connexion

你可以从语义上看出,它是忽略/跳过了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;
}
Copier après la connexion

 


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée des techniques de téléchargement et de téléchargement de fichiers en PHP Explication détaillée des techniques de téléchargement et de téléchargement de fichiers en PHP Jun 25, 2023 pm 05:57 PM

PHP est un langage de programmation côté serveur très populaire et largement utilisé dans le développement de sites Web. Parmi eux, le téléchargement et le téléchargement de fichiers sont l'une des fonctions couramment utilisées des sites Web, et PHP fournit une multitude de fonctions et de techniques pour mettre en œuvre ces fonctions. Dans cet article, nous présenterons en détail les techniques de chargement et de téléchargement de fichiers en PHP afin que vous puissiez développer votre site Web plus efficacement. Téléchargement de fichiers Le téléchargement de fichiers fait référence à l'envoi de fichiers depuis l'ordinateur local vers un serveur distant. Après avoir téléchargé les fichiers, nous pouvons stocker, traiter et afficher ces fichiers. En PHP

Compétences d'appel de l'interface API PHP Kuaishou : comment gérer les informations d'erreur renvoyées par l'interface Compétences d'appel de l'interface API PHP Kuaishou : comment gérer les informations d'erreur renvoyées par l'interface Jul 20, 2023 pm 11:22 PM

Conseils d'appel de l'interface API PHP Kuaishou : Comment gérer les informations d'erreur renvoyées par l'interface Lorsque vous utilisez PHP pour appeler l'interface API Kuaishou, nous rencontrons souvent des situations où l'interface renvoie des erreurs. Pour les informations d'erreur renvoyées par l'interface de traitement, nous devons fournir un traitement et un retour appropriés pour améliorer la stabilité et l'expérience utilisateur de l'application. Cet article présentera quelques techniques de gestion des informations d'erreur renvoyées par les interfaces et fournira des exemples de code correspondants. Utilisez try-catch pour intercepter les exceptions Lors de l'appel de l'interface API, certaines erreurs d'exception peuvent se produire.

Explication détaillée de la méthode d'application de la technologie de pagination en PHP dans le cadre Explication détaillée de la méthode d'application de la technologie de pagination en PHP dans le cadre Jun 09, 2023 am 11:40 AM

Avec le développement rapide d'Internet, de plus en plus de sites Web doivent mettre en œuvre des fonctions de pagination de données pour améliorer l'expérience de navigation des utilisateurs. Dans le développement Web, PHP est l'un des langages de programmation côté serveur les plus populaires, et la fonction de pagination de données est une technologie indispensable dans le développement PHP. Cet article présentera la méthode d'application de la technologie de pagination en PHP dans le cadre et comparera les avantages et les inconvénients des différentes solutions de pagination. 1. Méthode de pagination PHP traditionnelle Dans le développement PHP traditionnel, l'implémentation de la fonction de pagination de données nécessite d'écrire beaucoup de code, et cela doit être répété dans chaque page.

En savoir plus sur le remplacement des nouvelles lignes en PHP En savoir plus sur le remplacement des nouvelles lignes en PHP Mar 20, 2024 pm 06:42 PM

Le remplacement des nouvelles lignes en PHP est un problème souvent rencontré dans le développement réel, notamment lors du traitement de données texte. Le caractère de nouvelle ligne peut être exprimé différemment selon les systèmes d'exploitation. Il s'agit généralement de "" sur les systèmes Windows et de "" sur les systèmes Linux. Par conséquent, nous devons traiter uniformément les sauts de ligne pour garantir que les données texte sont dans un format normal. Cet article approfondira la technique de remplacement des nouvelles lignes en PHP et fournira des exemples de code spécifiques. 1. Utilisez les fonctions intégrées de PHP pour traiter les nouvelles lignes. PHP fournit certaines fonctions intégrées.

Conseils de programmation PHP : Comment localiser rapidement les nombres manquants dans un tableau Conseils de programmation PHP : Comment localiser rapidement les nombres manquants dans un tableau Mar 01, 2024 pm 04:27 PM

Conseils de programmation PHP : Comment localiser rapidement les nombres manquants dans un tableau En programmation, vous rencontrez souvent des situations où vous devez vérifier si certains nombres sont manquants dans un tableau. À l’heure actuelle, nous avons besoin d’un moyen rapide et efficace de localiser les nombres manquants dans le tableau afin qu’ils puissent être traités en temps opportun. Cet article présentera une technique de programmation basée sur PHP, en utilisant des exemples de code spécifiques pour montrer comment localiser rapidement les nombres manquants dans un tableau. 1. Méthode 1 : utiliser une boucle pour parcourir le tableau. Tout d’abord, nous pouvons vérifier les nombres manquants dans le tableau en parcourant le tableau. Étapes spécifiques

Conseils de programmation PHP : comment gérer la mise à l'échelle des images Conseils de programmation PHP : comment gérer la mise à l'échelle des images Aug 19, 2023 am 10:36 AM

Compétences en programmation PHP : comment gérer la mise à l'échelle des images Dans la conception Web moderne, les images font partie intégrante et la mise à l'échelle des images est l'une des opérations courantes. Qu'il s'agisse d'afficher une collection d'images ou de répondre aux besoins d'appareils de différentes tailles, la mise à l'échelle des images joue un rôle important. Cet article expliquera comment utiliser le langage de programmation PHP pour gérer la mise à l'échelle des images et joindra des exemples de code pour référence. 1. Utilisez la bibliothèque GD pour la mise à l'échelle des images La bibliothèque GD est une puissante bibliothèque de traitement d'images en PHP. Nous pouvons l'utiliser pour implémenter la fonction de mise à l'échelle des images. Tout d'abord, assurez-vous

Analyse des compétences de traitement PHP à haute concurrence Analyse des compétences de traitement PHP à haute concurrence Aug 10, 2023 pm 06:53 PM

Analyse des compétences de traitement PHP à haute concurrence Avec le développement d'Internet, les exigences en matière de visites simultanées sur les sites Web sont de plus en plus élevées. En tant que langage de programmation pour le développement de sites Web, PHP nécessite des compétences de traitement particulières pour améliorer les performances et la stabilité face à une forte pression d'accès simultané. Cet article présentera quelques techniques de traitement PHP à haute concurrence et fournira des exemples de code. Utiliser PHP-FPMPHP-FPM (FastCGIProcessManager) est un gestionnaire de processus officiellement fourni par PHP, qui peut efficacement

Maîtriser 50 compétences en implémentation de fonctions et partage d'expérience en développement PHP Maîtriser 50 compétences en implémentation de fonctions et partage d'expérience en développement PHP Nov 22, 2023 pm 04:51 PM

Maîtrisez 50 compétences en matière d'implémentation de fonctions et partage d'expériences dans le développement PHP. En tant que développeur PHP, nous recherchons toujours une implémentation de code efficace et de haute qualité. Afin d'améliorer l'efficacité du développement et la qualité du code, nous devons accumuler une certaine expérience et des compétences pour faire face à divers besoins et défis de développement complexes. Dans cet article, je partagerai 50 conseils et expériences de développement PHP pour implémenter diverses fonctions, dans l'espoir d'être utile à chacun dans son parcours de développement PHP. Utiliser un framework approprié : Choisir et se familiariser avec un framework PHP qui vous convient peut améliorer l'efficacité du développement et

See all articles