PHP 代理
PHP 中的代理是通过 cURL 库创建的。cURL 表示客户端 URL 是 php 中最强大的扩展之一。
Denial Stenberg 创建了 cURL 库来在不同服务器之间进行通信。
cURL 具有可以通过不同的 IP 和端口发送请求的功能。cUrl 允许我们通过 URL 发送和接收数据。
本文介绍如何在 PHP 中启用 cURL 并使用 cURL 创建代理。
在 PHP 中启用 cURL 库
在开始创建代理之前,我们需要启用 cURL 库。cURL 库已经存在于 PHP 中,我们必须启用它。
首先,我们需要检查是否启用了 cUrl。创建一个 info.php
文件并运行它。
<?php
phpinfo();
?>
当你运行这个文件时,它会显示 PHP 的所有信息。在进行下一步之前,有必要为 PHP 设置 PATH
变量。
如果已设置,则可以继续。在 info.php
上搜索 cURL。
如果未启用,请转到 PHP 主文件夹并找到 php.ini
文件。最有可能的路径是 C:\php74\php.ini
。
使用文本编辑器打开 php.ini
文件。搜索 curl,你会发现类似这样的内容:
;extension=php_curl.dll
或者对于较新的 PHP 版本:
;extension=curl
现在删除 ;
在扩展之前。保存 php.ini
文件并退出,重新启动你正在使用的服务器或本地主机。
extension=curl
再次运行 info.php
并搜索 cURL support
。你会看见:
cURL support: enabled
这意味着 cURL 已启用,你可以开始了。如果 cURL 仍未启用,请在扩展后尝试 php_curl.dll
的绝对路径。
extension=C:/php74/ext/php_curl.dll
使用 cURL 和 PHP 创建代理
cURL 有许多不同的关键字用于不同的操作。让我们看一个为给定 URL 创建代理请求的示例:
//URL you want to apply cURL proxy.
$site = 'http://google.com';
// The Proxy IP address
$proxy_ip = '138.117.84.240';
//The proxy port.
$proxy_port = '999';
//Authentication information for proxy, username and password.
$Username = 'demouser';
$Password = 'demopassword';
//Initiate cURL response
$curl_reponse = curl_init($site);
curl_setopt($curl_reponse, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_reponse, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_reponse, CURLOPT_HTTPPROXYTUNNEL , 1);
//Setting the IP address for proxy.
curl_setopt($curl_reponse, CURLOPT_PROXY, $proxy_ip);
//Setting the port for proxy.
curl_setopt($curl_reponse, CURLOPT_PROXYPORT, $proxy_port);
//Specifying the authentication information.
curl_setopt($curl_reponse, CURLOPT_PROXYUSERPWD, "$Username:$Password");
//Define the proxy server type, it is not neccessary, incase there is proxy connection aborted error.
//The defaults type is CURLPROXY_HTTP, and the other options are CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A, CURLPROXY_SOCKS5,and CURLPROXY_SOCKS5_HOSTNAME.
curl_setopt($curl_reponse, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//Execute the proxy request.
$output = curl_exec($curl_reponse);
//All the errors with number are given at this link from PHP Manual https://www.php.net/manual/en/function.curl-errno.php
//Error Number
echo curl_errno($curl_reponse).'<br/>';
// Error Info
echo curl_error($curl_reponse).'<br/>';
//Show the output, Return a cURL handle on success, and FALSE if there is an error.
echo $output;
上面的代码是创建代理请求以运行 google.com
的设置。该代码使用代理身份验证。
代理不需要连接到给定的 IP 和端口。如果代理连接成功,它将返回 true 或 cURL 句柄。
如果有任何错误,它将打印错误号和信息并返回 false。请参阅输出以了解最常见的错误之一:
28
Failed to connect to 138.117.84.240 port 999: Timed out
这个错误主要是因为 IP 和端口。
相关文章
如何在 PHP 中获取时间差的分钟数
发布时间:2023/03/29 浏览次数:183 分类:PHP
-
本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。