如何在 PHP 中压缩/解压缩长查询字符串?

2024-04-21

I doubt if this is encryption but I can't find a better phrase. I need to pass a long query string like this:

http://test.com/test.php?key=[some_very_loooooooooooooooooooooooong_query_string]

查询字符串不包含敏感信息,因此在这种情况下我并不真正担心安全性。它只是……嗯,太长而且丑陋。是否有一个库函数可以让我将查询字符串编码/加密/压缩为类似于 md5() 的结果(类似于,始终是 32 个字符的字符串),但可以解码/解密/解压缩?


你可以尝试组合使用gzdeflate http://php.net/gzdeflate (raw deflate格式)来压缩您的数据并base64_encode http://php.net/base64_encode仅使用那些无需百分比编码允许的字符(另外交换字符+ and / by - and _):

$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');

反之亦然:

$output = gzinflate(base64_decode(strtr($input, '-_', '+/')));

这是一个例子:

$input = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';

// percent-encoding on plain text
var_dump(urlencode($input));

// deflated input
$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');
var_dump($output);

在这种情况下,节省的费用约为 23%。但此压缩过程的实际效率取决于您所使用的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PHP 中压缩/解压缩长查询字符串? 的相关文章

  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • 包含包含文件的 php 文件

    这是目录结构 global php includes class bootstrap php includes init php plugins myplugin php 这是这些文件中的代码 start php require inclu
  • PHP 基本身份验证 file_get_contents() [重复]

    这个问题在这里已经有答案了 我需要从网站解析一些 XML 数据 XML 数据是原始格式 但在我需要进行身份验证之前 基于基本网络服务器的身份验证 使用用户名和密码 I tried homepage file get contents htt
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • PHP 错误警告:参数 1 应该是引用

    我 熟悉 PHP 我的朋友的网站因错误而崩溃 Warning Parameter 1 to Some function name expected to be a reference value given in public html i
  • phpinfo 说 php.ini 路径是 C:\Windows 但那里没有 php.ini

    我们正在尝试从 PHP5 切换到 PHP7 现在我们已经安装了 Apache 并且 PHP 可以运行了 然而 我们在php ini文件没有任何作用 Via phpinfo 我们意识到原因是Configuration File php ini
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN

随机推荐

  • 练习:网络爬虫 - 并发不起作用

    我正在经历 golang 之旅 并致力于最后的练习 以将网络爬虫更改为并行爬行而不是重复爬行 http tour golang org 73 http tour golang org 73 我所改变的只是抓取功能 var used make
  • Android Resources$NotFoundException:无法找到资源 ID

    我从 Firebase 收到一份活动报告 由于找不到我的资源而导致活动失败 我真的很困惑为什么找不到它 因为我相信所有文件都在正确的目录中 并且用户使用的是 Android v8 1 它并不古老 应该能够处理我认为有的东西自 v1 1 以来
  • 强制用户注销会话 PHP

    我似乎无法找到这个问题的直接答案 有没有办法强制登录用户注销 我的登录系统本质上只依赖于包含用户唯一 ID 存储在 mysql 数据库中 的会话 所以本质上只是 if isset SESSION user id echo You re lo
  • Delphi XE2:为什么 FireMonkey 应用程序是高清的?

    根据 Delphi XE2 的发行说明 FireMonkey可以创建高清应用程序 HD 代表高清晰度 为什么是高清 VCL应用程序不能像FireMonkey一样创建高清应用程序吗 这里是Firemonkey 的文档 http docwiki
  • 来自 post 请求的有效负载在 Node.js 函数中不可用

    我刚刚开始摆弄三个新的 对我来说 框架 产品 MongoDB NodeJS 和 AngularJS 我想要完成的是让一个简单的表单提交一个值并将该值写入数据库 我已经到了这样的地步 在我的 Angular 应用程序中使用 http post
  • jQuery 中的对象或方法链接如何工作?

    我不是问链接的适当语法是什么 我知道它可能是这样的 myDiv removeClass off addClass on 据我所知 链接是相对于其他著名框架的优势之一 有人可以向我解释一下链接在这里是如何工作的吗 如果您有一个具有某些方法的对
  • 参数“sectionGroupName”无效

    我正在尝试添加服务引用 然后收到此错误 参数 sectionGroupName 无效 参数名称 sectionGrouName 项目运行 Net 3 5 当我将项目升级到 Net 4 0 时 它就可以工作了 但这对我来说不是一个选择 因为其
  • 为什么按钮不绘制?

    我不明白为什么按钮不绘制在它之前工作的背景上 这不会显示错误 这是代码 gt 这段代码是错误的吗 我的问题是否可以重现 它可能在按钮的代码中 我将不胜感激 import pygame pygame init screen pygame di
  • Kafka服务器未远程连接zookeeper服务器

    我正在尝试将 kafka 服务器 在 Windows 系统上 连接到 Zookeeper 服务器 我面临着 Opening socket connection to server 10 160 10 25 10 160 10 25 2181
  • Postmates 与 Shopify Shipping/Carrier 服务集成

    我们正在寻求集成此应用程序 https postmates com developer docs https postmates com developer docs进入我们的 Shopify 平台 有关其工作原理 请检查 http blo
  • 如何替换ng-view中的部分节?

    我倾向于 Angular 的路线 很清楚如何通过简单的设置将视图加载到 ng view 中template属性 假设我在视图上有一个小部件 当用户导航到 changeWidget 时 如何仅替换小部件内容 在我看来 我只能使用单个ng vi
  • android:errorMessageBackground 在 styles.xml 中找不到资源错误

    我正在研究EditText验证并使用 setError 显示错误消息 我的主要座右铭是根据我的应用程序设计更改错误弹出窗口 我用的是 android errorMessageBackground 风格但不幸的是我得到了 No Resourc
  • 将非标准 svn 转换为 git

    我们有一个非标准的 svn 设置 如下所示 Root gt Trunk gt Projects gt Project 1 gt Project 2 gt Project 3 gt Libraries gt Library 1 gt Libr
  • 使用 ggplot 包 R 更改图中 yaxis 面的标签

    这是我的数据集和生成绘图的代码 library reshape library ggplot2 set seed 357 myLetters lt function length out a lt rep letters length ou
  • 使用 Google Sign-In Android 获取用户的出生日期和性别

    我已经集成了Google Sign In在我的应用程序中 我可以获得用户的Email and DisplayName 现在 我想获取用户的Birthdate and Gender 我已经添加了所有必需的requests Scopes int
  • 对象和 console.log 的奇怪行为[重复]

    这个问题在这里已经有答案了 这段代码 foo id 1 id 2 id 3 id 4 id 5 console log foo1 foo foo length foo splice 2 1 console log foo2 foo foo
  • 创建的线程数超出预期

    你可以找到该程序here https pastebin com H5fq732a 我正在消息传递框架 0MQ 中构建一个程序 我尝试执行我发布的内容here https stackoverflow com questions 4409620
  • 从因子创建列并进行计数[重复]

    这个问题在这里已经有答案了 一个看似简单的问题却让我非常忙碌 我有一个数据框 gt df1 Name Score 1 Ben 1 2 Ben 2 3 John 1 4 John 2 5 John 3 我想创建这样的表格摘要 gt df2 N
  • unserialize() [function.unserialize]:在 49151 字节的偏移量 49151 处出错

    在将对象存储到数据库中并检索它之后 我遇到了像网站上的许多错误一样的偏移错误 如果我不存储它 一切都会正常 serializedObject serialize this unSerializedObject unserialize ser
  • 如何在 PHP 中压缩/解压缩长查询字符串?

    I doubt if this is encryption but I can t find a better phrase I need to pass a long query string like this http test co