szczyglis / php-ultra-small-proxy
轻量级代理,完全支持会话、cookies、POST/表单提交和URL重写。
Requires
- php: ^7.2.5|^8.0
- ext-curl: *
- ext-xml: *
This package is auto-updated.
Last update: 2024-09-26 04:42:12 UTC
README
版本: 2.1.3 | 构建: 2024.08.26 | PHP: ^7.2.5|^8.0
超小代理 2
超小代理是一个用PHP编写的轻量级代理。
如何安装
composer require szczyglis/php-ultra-small-proxy
功能
- PHP编写的代理服务器
- 易于使用和集成
- 简单轻量
- 支持会话
- 支持发送和接收cookies
- 支持发送和接收HTTP头
- 缓存和资产存储
- 支持域名和IP/主机连接
- 支持HTTP基本认证
- 支持GET和POST请求处理
- 支持表单提交
- POST变量重定向
- 带有地址栏、配置和调试器的工具栏
- 在运行时重写/代理URLs(链接、图像、CSS、JavaScript等)
- 支持两种URL重写方法:正则表达式(使用preg_replace)和XML(使用libxml/DOM)
- 支持PHP 7.2.5+和8.0+
要求
- PHP 7.2.5+或8.0+,带有CURL和XML扩展
- Composer - https://getcomposer.org/
使用示例
<?php // app.php require __DIR__ . '/vendor/autoload.php'; use Szczyglis\UltraSmallProxy\UltraSmallProxy; use Szczyglis\UltraSmallProxy\Config; $config = new Config(); $proxy = new UltraSmallProxy($config); echo $proxy->load('https://github.com'); // <-- specify start page here
请确保您有对./cookies
和./cache
目录的写权限。
警告:cookies目录不应该公开访问!
截图
如果您想测试代理功能,如会话支持、POST变量重定向、表单提交等,请打开loopback.php
,例如:
<?php $output = $proxy->load('https:///loopback.php');
仓库内容
-
src/
- 代理类 -
index.php
- 使用示例 -
loopback.php
- 用于测试功能,如会话支持、表单变量发送和cookie重定向的回环
基本用法
use Szczyglis\UltraSmallProxy\UltraSmallProxy; use Szczyglis\UltraSmallProxy\Config; $config = new Config(); $proxy = new UltraSmallProxy($config); echo $proxy->load('https://github.com');
配置
$output = $proxy->load('https://github.com', $force = false);
布尔值 $force
- 如果设置为 false
,则查询字符串中提供的URL将始终覆盖此处传递的URL。设置为 true
将反转此行为。默认: false
。
配置值
页面加载前
$config->set('init', true) - 布尔值
,自动初始化 true|false
,默认: true
$config->set('source', 'domain') - 字符串
,输入源 domain|ip
,默认: domain
$config->set('raw', false) - 布尔值
,原始下载 true|false
,默认: false
$config->set('toolbar', true) - 布尔值
,附加工具栏 true|false
,默认: true
$config->set('user_agent', 'Mozilla/4.0 (compatible;)') - 字符串
,用户代理,默认: Mozilla/4.0 (compatible;)
$config->set('timeout', 120) - 整数
,curl超时,默认: 120
$config->set('max_redirects', 10) - 整数
,curl最大重定向,默认: 10
$config->set('cookies_dir', './cookies') - 字符串
,cookies目录,默认: ./cookies
$config->set('cache_dir', './cache') - 字符串
,缓存目录,默认: ./cache
$config->set('method', 'GET') - 字符串
,请求方法 GET|POST
$config->set('rewrite', 'REGEX2') - 字符串
,重写方法 REGEX,REGEX2,REGEX3,DOM
,默认: REGEX2
$config->set('rewrite_url', true) - 布尔值
,启用URL重写 true|false
,默认: true
$config->set('rewrite_img', true) - 布尔值
,启用IMG重写 true|false
,默认: true
$config->set('rewrite_js', true) - 布尔值
,启用JS重写 true|false
,默认: true
$config->set('rewrite_form', true) - 布尔值
,启用表单操作重写 true|false
,默认:true
$config->set('rewrite_css', true) - 布尔值
,启用 CSS 重写 true|false
,默认:true
$config->set('rewrite_video', true) - 布尔值
,启用 视频重写 true|false
,默认:true
$config->set('rewrite_ip', true) - 布尔值
,启用 域名到IP+主机解析 true|false
,默认:true
$config->set('assets', 'REDIRECT') - 字符串
,资产代理模式 REDIRECT|CURL
,默认:REDIRECT
$config->set('is_cfg', false) - 布尔值
,显示选项 true|false
,默认:false
$config->set('is_dbg', false) - 布尔值
,显示调试信息 true|false
,默认:false
$config->set('htaccess_user', 'user') - 字符串
,HTTP认证用户
$config->set('htaccess_pass', 'pass') - 字符串
,HTTP认证密码
公共方法
页面加载后
$siteCookies = $proxy->cookie->getSiteCookies() - 返回从代理网站接收到的 cookies[]
$localCookies = $proxy->cookie->getLocalCookies() - 返回存储在本地并发送到代理网站的 cookies[]
$status = $proxy->http->getStatus() - 返回连接状态[]
$headers = $proxy->http->getHeaders() - 返回接收到的头信息[]
$sid = $proxy->getSid() - 返回存在的代理 PHPSESSID
$errors = $proxy->getErrors() - 返回错误信息[](如果发生错误)
其他方法
$parsed = $proxy->render($html) - 使用选定的 $rewriteMode
解析/重写自定义 HTML 内容中的 URL。
变更日志
2.1.0
-- 包被添加到 Packagist(2022-04-23)
2.1.1
-- 更新 PHPDoc(2022-04-25)
2.1.2
-- 更新 composer.json(2022-04-28)
2.1.3
-- 改进文档(2024-08-26)
Ultra Small Proxy 免费使用,但如果您喜欢它,可以通过购买我一杯咖啡来支持我的工作;(
https://www.buymeacoffee.com/szczyglis
享受!
MIT 许可证 | 2022 年 3 月 Marcin 'szczyglis' Szczygliński