PHP - 设置/模拟假日期

2024-02-22

我有一个有点奇怪的问题。是否可以在 PHP 中设置脚本运行时间的假日期?我使用的API使用时间段,例如当您发送请求获取一些数据时,您可以指定时间段(例如一个月,但这些时间段是固定的),它会返回从request_time-1month到request_time的结果。显然,请求数据是当前时间,所以我想模拟当前时间(例如设置日期从5月10日到4月15日)。是否可以?我在 PHP 文档中看不到任何有用的信息,我什至不知道它是否有效,因为我不确定这个 API 是否使用它工作的服务器或存储上述数据的独立服务器的时间。但也许有人有任何想法。

提前致谢。


使用 libfaketime (https://github.com/wolfcw/libfaketime https://github.com/wolfcw/libfaketime)。在 ubuntu 上 - 只需使用 apt-get 或 aptitude 安装 faketime 即可。

  1. 如果你想为控制台应用程序伪造时间:

     LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 FAKETIME="2008-01-01 00:00:00" php yourscript.php
    
  2. 如果你想伪造 apache 时间,你需要在启动 apache 时预加载 libfaketime。就放

     export FAKETIME="2008-01-01 00:00:00"
     export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
    

into /etc/apache2/envvars并重新启动阿帕奇。现在你的服务器响应总是看起来像

$ curl -D - http://localhost
HTTP/1.1 200 OK
Date: Tue, 01 Jan 2008 00:00:00 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Tue, 01 Jan 2008 00:00:00 GMT
ETag: W/"420419-b1-4429c2a6653ac"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html

2019 更新:

在最新的系统上,您需要 64 位版本的 libfaketime,因此您需要LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1(感谢@jtrautmann),或者甚至libfaketimeMT.so.1在多线程环境中。

此外,还有三种方法可以指定伪造的时间:

  • 通过设置环境变量FAKETIME
  • 通过使用环境变量中给出的文件FAKETIME_TIMESTAMP_FILE
  • 通过使用该文件.faketimerc在你的主目录中
  • 通过使用该文件/etc/faketimerc对于系统范围的默认值

此外,在 docker 容器内使用 libfaketime 是完全有效的。

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

PHP - 设置/模拟假日期 的相关文章

  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 从文本块中提取相关标签/关键字

    我想要一个特定的实现 以便用户提供如下文本块 要求 使用 Linux Apache 2 的 LAMP 环境的工作知识 MySQL 5 和 PHP 5 Web 2 0 标准知识 熟悉 JSON 使用框架 Zend OOP 的实践经验 跨浏览器
  • 根据数组计数填充复选框

    我是新来的php我已经使用了它的开发php array 我想填充checkboxes根据数组计数 为了做到这一点 我尝试了以下方式 它对我不起作用 有什么方法可以做到这一点 在我的例子中 数组计数 5 所以我相应地需要 5 个复选框
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • 我如何知道请求是否来自 flash swf?

    我有一个用 flash 开发的应用程序 我需要访问一些 php 文件 因此 如果访问来自 swf 则 php 文件会返回一些数据 如何判断请求是否来自Flash 无需将 get post 变量传递给 php 可能是用户代理 推荐人 请记住
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • $_POST、$_GET 和 $_REQUEST 之间有什么区别?

    我对这些超级全局变量有点困惑 POST GET and REQUEST 在 PHP 中 在 PHP 中哪些场景需要使用这些变量 这三个变量的主要区别是什么 POST是在使用 application x www form urlencoded
  • TCPDF/PHP 和字体:大写数字(血统数字?旧样式?)

    我得到了一种特殊的字体 上面有这样的数字 例如 正如您在 3 上看到的 一些数字下降到基线以下 我想要实现的是 这些数字不会低于该线 并且看起来像这样 在 Word 中 可以在相同字体的字符设置中轻松设置 如何在 TCPDF 中呈现数字 我
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 数据表 - 服务器端处理 - 数据库列合并

    我目前正在使用 DataTables 1 10 5 服务器端处理功能 http www datatables net examples data sources server side html http www datatables ne
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth

随机推荐

  • Docker,它是什么以及目的是什么

    前几天听说过 Docker 想了解一下 但其实我不知道这个 容器 的用途是什么 什么是容器 它可以取代专门用于开发的虚拟机吗 简单来说 公司使用Docker的目的是什么 主要优点 VM 例如 使用虚拟机 VM 软件 可以将 Ubuntu 安
  • ADO.NET 中断开连接和连接方法的确切含义是什么

    我正在学习ADO Net 我读到了这一行 DataReader 是 连接 方法 而数据集是 断开连接 方法 从这句话我得出这样的结论 在数据读取器中我们需要建立与数据库的连接 而在数据集中我们不需要建立与数据库的连接 但是如何在不建立连接的
  • 对矩阵中的列值进行采样,无需替换

    我有一些 R 经验 但总是很难编写新代码 我在处理当前项目时发现了一些非常有用的帖子 但似乎找不到下一步 这是我到目前为止所做的 导入 20x20 csv 的排名 每列包含从 1 到 20 的每个整数的一个实例 因此所有 colSum 均为
  • Android 正则表达式模式 Incode UTF-8

    我正在 android 中尝试使用 matcher group 1 捕获 代码 String html doc html toString Pattern p Pattern compile is caption is is is Patt
  • 使用某些纸/芯元件时 dartium 中的警告

    我正在尝试使用 paper tabs paper tab 和 core pages 元素 但 dartium 显示了一堆警告 例如 from html5lib Unexpected non space characters Expected
  • 如何修复防伪令牌适用于用户“”,但当前用户是“xxxx”错误

    提供的防伪令牌适用于用户 但当前用户是 xxxx 我已经遵循了所有可能的解决方案来消除此错误 但没有成功 这是场景 我在浏览器选项卡 A 选项卡 B 中打开了 2 个单独的登录选项卡 1 我在选项卡 A 中登录我的网站 2 然后尝试登录Ta
  • VSTS 发布拉取请求构建触发器

    我的团队正在使用 VSTS 构建和发布机制 结合拉取请求分支安全设置 以便只有在拉取请求完成后才能合并代码 不过 我们遇到了一些奇怪的事情 因为当创建拉取请求 并且生成构建来证明提交 时 由拉取请求触发的此构建的完成也会间接触发发布 因为我
  • 检测 Silverlight 中的 DataContext 更改

    我有一个由多个部分组成的问题 1 Silverlight 不公开 DataContextChanged 事件是否有充分的理由 如果微软的某个人做出改变 似乎可以避免很多麻烦internal to public在 FrameworkEleme
  • C++ 右值引用和移动语义

    C 03 存在可能隐式发生不必要的副本的问题 为此 C 11引入了rvalue references and move semantics 现在我的问题是 这种不必要的复制问题是否也存在于 C 和 java 等语言中 或者只是 C 的问题
  • 当测试用例通过或失败时发送电子邮件警报

    我想在测试执行结果通过或失败或在测试管理器上执行时的任何其他状态时向用户发送电子邮件警报 我知道测试管理器无法做到这一点 但 TFS 可以 我已经尝试了各种查询组合来设置相同的警报 我想为自动化测试用例执行此操作 我将创建的构建不会发生太大
  • 打开 RewriteEngine 会产生 403 错误——如何打开 FollowSymLinks?

    我正在 OSX 上使用内置的 Apache2 我将文档根目录移动到桌面上的一个文件夹中 并确保 www and everyone具有读取权限 它工作得很好 很棒 PHP 工作 一切工作正常 直到我添加一个 htaccess仅此行 Rewri
  • 将简单的 JSON 对象转换为属性文件

    我有一个简单的 JSON 对象 想将其转换为 bash 中的属性文件 Input foo bar abc def ghi 预期输出 foo bar abc def ghi 您可以使用to entries为了那个原因 jq r to entr
  • 在 C++ 中捕获 Python 异常

    我正在开发一个服务器 客户端应用程序 其中客户端调用服务器的 API 该 API 为用户输入提供 Python 接口 这意味着客户端接口和服务器接口是用Python编写的 而套接字代码是用C 编写的 在服务器端 我有一堂课 Test 在 C
  • 检查数组是否为空似乎不起作用

    简单数组和简单检查是否是数组或对象 但是当没有数组数据而不是显示时页面崩溃No 这是数组 url get curl content tx https example com arr json decode url true if is ar
  • 显示/隐藏 ImageView 可见性时 Android 应用程序崩溃

    我一直在尝试创建我的第一个 Android 应用程序 是的 遇到了应用程序崩溃 我的片段 主 中有两个 ImageView 在相对布局中将 imageview 1 与 imageview2 重叠 我想做的是 如果有互联网连接 应该会显示 i
  • 电子 v10.1.1 给出未捕获的类型错误:无法读取未定义的属性“对话框”,但相同的代码可以在电子 v9.3.0 中使用

    I am trying to upload a file in an electron app which works perfectly for electron v9 3 0 but as soon as I use electron
  • Swift 使用 NSFetchedResultsController 和 UISearchBarDelegate

    我正在寻找解决这个问题的好方法 我想在我拥有的 TableView 上实现一些简单的搜索功能 我发现的所有示例都使用已弃用的UISearchDisplayController或使用新的UISearchController但没有NSFetch
  • 如何在mongo中高效地通过查询删除文档?

    我有一个查询 它选择要删除的文档 现在 我手动删除它们 如下所示 使用 python for id in mycoll find query fields mycoll remove id 这似乎效率不高 有没有更好的办法 EDIT 好吧
  • 从不同路径访问 PHP 会话变量

    我在 PHP 会话中遇到一个非常奇怪的问题 事实如下 创建会话变量代码 mydomain a b c create session php 读取会话变量 read mydomain a b c read session php 问题 当我从
  • PHP - 设置/模拟假日期

    我有一个有点奇怪的问题 是否可以在 PHP 中设置脚本运行时间的假日期 我使用的API使用时间段 例如当您发送请求获取一些数据时 您可以指定时间段 例如一个月 但这些时间段是固定的 它会返回从request time 1month到requ