szczyglis/php-ultra-small-proxy

轻量级代理,完全支持会话、cookies、POST/表单提交和URL重写。

v2.1.3 2024-08-26 04:23 UTC

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
// 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目录不应该公开访问!

截图

proxy

如果您想测试代理功能,如会话支持、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

https://github.com/szczyglis-dev/php-ultra-small-proxy

https://szczyglis.dev

联系方式:szczyglis@protonmail.com