迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

PHP 代理

作者:迹忆客 最近更新:2023/03/28 浏览次数:

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 错误处理程序

下一篇:PHP 合并 PDF

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便