PHP抓取HTTPS网页内容方法及错误处理
PHP抓取HTTPS网页内容方法及错误处理
最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的,跟普通的HTTP协议不同,当使用PHP里的函数 file_get_contents() 来获取API里提供的数据时,出现错误,使用的代码是这样的:
1 2 |
|
当运行上面的代码是遇到下面的错误提示:
1 |
|
为什么会出现这样的错误?
在网上经过一番搜索,发现遇到这样错误的人还不少,问题很直接,是因为在PHP的配置文件里没有开启一个参数,在我本机上是 /apache/bin/php.ini 里的 ;extension=php_openssl.dll 这一项,需要将前面的分号去掉。你可以用下面的脚本来检查你的PHP环境的配置:
1 2 3 4 5 |
|
运行上面的这个脚本片段,在我的机器上得到的结果是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
替代方案
发现错误,改正错误,这很简单,困难的是,发现错误后无法改正错误。我原本是想将这个脚本方法远程主机上,但我无法修改远程主机的PHP配置,结果是,我无法使用这一方案,但我们不能在一棵树上吊死,这条路走不通,看看有没有其它路。
另外一个我经常用的PHP里抓取内容的函数是 curl ,它比 file_get_contents() 更强大,提供了很多的可选参数。对于访问 HTTPS 内容的问题,我们需要使用的 CURL 配置参数是:
1 |
|
你可以从语义上看出,它是忽略/跳过了SSL安全验证。也许这不是一个很好的做法,但对于普通的场景中,这几经足够了。
下面是利用 Curl 封装的一个能访问HTTPS内容的函数:
1 2 3 4 5 6 7 8 9 10 11 12 |
|

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP is a very popular server-side programming language that is widely used in website development. Among them, file uploading and downloading are one of the commonly used functions of websites, and PHP provides a wealth of functions and techniques to implement these functions. In this article, we will introduce in detail the file upload and download techniques in PHP so that you can develop your website more efficiently. File upload File upload refers to sending files from the local computer to a remote server. After uploading the files, we can store, process and display these files. In PHP

PHP Kuaishou API interface calling tips: How to handle the error information returned by the interface When using PHP to call the Kuaishou API interface, we often encounter situations where the interface returns errors. For error information returned by the processing interface, we need to provide appropriate processing and feedback to improve the stability and user experience of the application. This article will introduce some techniques for handling error information returned by interfaces and provide corresponding code examples. Use try-catch to catch exceptions. When calling the API interface, some exception errors may occur.

With the rapid development of the Internet, more and more websites need to implement data paging functions to improve users' browsing experience. In Web development, PHP is one of the most popular server-side programming languages, and the data paging function is an indispensable technology in PHP development. This article will introduce the application method of paging technology in PHP in the framework, and compare the advantages and disadvantages of different paging solutions. 1. Traditional PHP paging method In traditional PHP development, implementing the data paging function requires writing a lot of code, and it needs to be repeated in each page.

Replacing newlines in PHP is a problem that is often encountered in actual development, especially when processing text data. The newline character may be expressed differently in different operating systems. It is usually "" in Windows systems and "" in Linux systems. Therefore, we need to uniformly process line breaks to ensure that the text data is in a normal format. This article will delve into the technique of replacing newlines in PHP and provide specific code examples. 1. Use PHP built-in functions to process newlines. PHP provides some built-in functions.

PHP Programming Tips: How to Quickly Locate Missing Numbers in an Array In programming, you often encounter situations where you need to check whether certain numbers are missing in an array. At this time, we need a fast and effective way to locate the missing numbers in the array so that they can be processed in a timely manner. This article will introduce a PHP-based programming technique, using specific code examples to demonstrate how to quickly locate missing numbers in an array. 1. Method 1: Use a loop to traverse the array. First, we can check for missing numbers in the array by looping through the array. Specific steps

PHP programming skills: How to handle image scaling In modern web design, images are an integral part, and image scaling is one of the common operations. Whether it is displaying a collection of images or responding to the needs of devices of different sizes, image scaling plays an important role. This article will introduce how to use the PHP programming language to handle image scaling, and attach code examples for reference. 1. Use the GD library for image scaling. The GD library is a powerful image processing library in PHP. We can use it to implement the image scaling function. First, make sure

Analysis of PHP High Concurrency Processing Skills With the development of the Internet, the requirements for concurrent visits to websites are getting higher and higher. As a programming language for developing websites, PHP needs some special processing skills to improve performance and stability when faced with high concurrent access pressure. This article will introduce some PHP high concurrency processing techniques and provide code examples. Use PHP-FPMPHP-FPM (FastCGIProcessManager) is a process manager officially provided by PHP, which can effectively

Master 50 function implementation skills and experience sharing in PHP development. As a PHP developer, we are always pursuing efficient and high-quality code implementation. In order to improve development efficiency and code quality, we need to accumulate some experience and skills to cope with various complex development needs and challenges. In this article, I will share 50 PHP development tips and experiences for implementing various functions, hoping to be helpful to everyone on their PHP development journey. Use an appropriate framework: Choosing and becoming familiar with a PHP framework that suits you can improve development efficiency and
