无数的 PHP 和文本文件:非常奇怪的交互

问题描述 投票:0回答:1

虽然我一直在清除左右和中心的缓存 - 似乎仍然有一些东西记得/保留着。甚至不知道我是如何清除它的,但现在它不依赖于文本文件。 file_exists 根本找不到具有 0644 权限的图像文件。欢迎对 file_exists() 功能或为什么会发生这种情况进行任何基本或高级解释。谢谢 - 对于下面的误解深表歉意。


我在一个网站上工作,该网站有我们无线电系统的链接。 Myriad 是运行广播的软件,它通过 ftp 将当前演示者输出到我们网络服务器上的文件中。我们给主持人 Joe Bloggs 打电话吧。

此文本文件 - 权限、组和所有者均正确 - 除了 Myriad 定期更新演示者姓名之外,永远不会更改。同一位置还有第二个 txt 文件用于测试目的。该文件只能由我自己手动更改,并且权限、组和所有者也是正确的。

我有 PHP 代码,通过 file_get_contents() 从文本文件中提取数据,然后使用字符串操作创建与演示者关联的图像文件的目录和 URL 路径。

示例:

Presenter in file: Joe Bloggs
$presImgDir: /home/dir/path/further/path/img/presenters/joe_bloggs_1.png
$presImgURL: https://my.website/further/path/img/presenters/joe_bloggs_1.png

我的 PHP 代码做了一个简单的操作:

if(!file_exists($presImgDir)) {
     $presentersImgURL = DIR_ROOT_CONST_INC_DS . 'further/path/img/presenters/fallback.png';
}

因此,如果出于任何原因,演示者图像不存在,它就会退回到两个人的通用黑色剪影。

我已经检查了每一行代码、每个 php 函数的每个结果以及我的方法。当实时无数变化的文本文件和欺骗文件具有完全相同的演示者姓名、相同的格式、大小写、间距、字符时 - 以至于从一个复制和粘贴到另一个(双向) - 他们以某种方式改变了file_exists() 检查的结果。

使用实时文件(连接无数 FTP)时 - file_exists 返回 false。 使用欺骗文件(手动编辑文件)时 - file_exists 返回 true。

我很茫然。我为自己的技能感到自豪,同时知道你永远无法停止向资源或同行学习,但我有点自闭的大脑现在正在崩溃,因为这个问题看似完全不合逻辑。

为什么包含完全相同数据的文本文件中的差异会改变 PHP file_exists() 检查的结果,特别是当它接收到的只是一个字符串,并且不与文本文件交互时?

php logic file-exists
1个回答
0
投票

看来我原来的“有人改变了一些东西”的感觉是正确的。我的同事已经从无数的服务器上更改了 ftp 帐户 - 没什么大不了的,仍然可以正常工作。

然而

在这个过程中,不知何故,不知何故,正在发送一个未知编码的附加字符,附加在下面提到的演示者姓名之前。当我对变量进行 var_dump() 处理时,出现了内部带有问号的古老菱形,而且还在 glob 检查内,然后将其从 chrome 浏览器复制并粘贴到 Visual Studio 中。

在编码和这些特定功能的复杂性方面,我的知识有很大差距,但我知道它们会输出这些隐藏的小宝石(邪恶的恶魔混蛋,需要你花 2 天的时间来开发)使用过。

© www.soinside.com 2019 - 2024. All rights reserved.