问题标签 [splfileobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - fwrite 方法超过的最大执行时间
我正在尝试使用 SplFileObject 的 fwrite 方法写入一些 txt 文件并收到以下错误消息。
致命错误:在第 9 行的 /Users/oliverwilliams/Desktop/olliephp/directory.php 中超过了 30 秒的最大执行时间。
第 9 行while (!$textfile->eof()) {
来自以下代码
我是 PHP 新手。如何摆脱这个错误?
这是我正在模仿的代码,来自 David Powers Lynda 课程。他的代码确实有效。
php - 如何在 FTP 中使用 SplFileObject()?
这段代码在 fopen 上运行得很好:
但是当我尝试使用 SplFileObject 时:
我收到了这个错误:
警告:未知:FTP 服务器错误 426:426 写入网络流失败。在第 0 行的未知中
是否有另一种方法可以将 SplFileObject 与 FTP 一起使用?
php - SplFileObject 未正确读取 CSV
所以我必须读取多个 CSV 文件,合并它们的标题(通过删除重复项)并将值放入最终(合并的)CSV 文件中。我正在尝试SplFileObject
第一次使用。我从阅读文件开始。下面是详细信息
文件 1.csv
合并.csv
它输出:
为什么它没有为下一行创建另一个数组?
php - 有没有更快的方法使用 php 将数据从文件导入 MySQL?
好的,所以我得到了大约 100k-1M 行的文本,我总是将它们导入数据库。我使用的代码如下:
但是,它需要很长时间。有没有更快的方法来做到这一点,还是我坚持使用这种方法?
PS。我不想使用 MySQL 的“INSERT DATA INFILE”。
php - 正则表达式删除 csv 文件中的错误字符以使 SplFileObject 在 PHP 中正常工作
我尝试通过 PHP 解析一个 csv 文件SplFileObject
。可悲的是SplFileObject
,如果文本中有错误的不可见字符,有时会卡住。该函数在遍历 csv 文件中的行时检测引用而不是跳过或读取它作为普通字符。下面的截图来自 Textwrangler:
我还在这里从 Textwrangler 复制了它(不可见的字符应该在“forgé”和“Circa”之间):
我的代码(SplFileObject 部分):
我试图找出 csv 文件通过file -I my.csv
. 输出:my.csv: application/octet-stream; charset=binary
。这是一个奇怪的结果,因为该文件可以通过 Textwrangler 读取,因此不是二进制文件。我还阅读了以相同方式生成的另一个 csv,并且输出与预期的一样:second.csv: text/plain; charset=utf-8
. 用于生成 csv 文件的工具称为Visual Web Ripper(用于抓取网页的工具)。
我如何确定这个倒置问号是哪个字符(它似乎不是西班牙语倒置问号 - 可能只是 Textwrangler 插入的占位符)?如何删除我的 csv 文件中的这个字符和所有“无效”字符?是否有一个正则表达式匹配每个字符、数字、符号(标点符号和其他文本符号),实际上是一个真正的字符并省略了上面示例中的内容?我正在寻找一个 unicode 安全的正则表达式(需要保留德语变音符号、法语、俄语、中文、日语和韩语字符)。或者:如何将 csv 文件转换charset=binary
为UTF-8?
编辑:
如果我通过nano
编辑器打开它,它会显示forgé.^@ Circa
. 快速搜索后,它似乎是一个 NUL 字符或 \u0000(请参阅评论和https://en.wikipedia.org/wiki/Null_character以供参考)。
编辑 2:
我对其进行了深入研究:该函数似乎存在问题,该$splFile->current()
函数在当前文件指针处读取一行。该行在NUL
字符之后被截断(无论我尝试通过SplFileObject::READ_CSV
还是普通字符串(不带SplFileObject::READ_CSV
参数)读取它)。
php - 遍历文本文件并检查服务器上是否存在文件
我有一个 txt 文件,其中包含 40.000 个文件路径和文件名,我需要检查它们是否存在。
要检查单个文件,我使用以下代码:
该代码有效。
现在我想遍历 txt 文件,该文件每行包含一个路径
我尝试使用此代码遍历 txt 文件,但我得到所有文件的“文件不存在”。
php - splfileobject 无法在 ubuntu 16.04 apache 网络服务器上使用 php7.0
我一直在制作一个网站,该网站具有基于访问 php 中的 .txt 文件的用户帐户登录系统。我最初在免费的网络托管服务上测试了大部分代码并让用户帐户登录系统正常工作,但是当我尝试将其移至我自己的个人 apache 网络服务器时,我的一些 php 代码的功能似乎已经丢失,我不知道为什么。具体来说,我已将其范围缩小到不返回变量 $passfile 值的 splfileobject() 函数。我是否缺少一些执行此操作所必需的 php 库?当我查看它时,它说 php7.0 有 splfileobject() 和它的其他连接函数,作为标准 php 库的一部分。
这是我的一些代码
出于某种原因,打开这样的文件可以正常工作。
但是,我希望能够搜索到密码文件中的特定点,该点具有与用户名文件并行的数据以减少计算时间,并且必须使用 splfileobject 来执行此操作。
谢谢
php - 为从远程 aws s3 文件读取的 SplFileObject 设置超时
我正在使用 SplFileObject 直接从 aws s3 服务器逐行读取文件。
这在 99% 的情况下都可以正常工作,除非在循环运行并且存在临时网络故障的情况下。脚本无法从 s3 访问下一行 x 秒过早退出。问题是你永远不知道脚本是完成了它的工作还是由于超时而退出了。
我的问题是
1-有没有办法在访问远程文件时在 SPLFileObject 上显式设置超时,以便当循环退出时,我可以了解它是否由于超时而退出,或者文件是否真的达到了 eof。
我检查了stream_set_blocking和stream_set_timeout,但它们似乎都不适用于SplFileObject。
2-此脚本当前遵循的超时设置是什么?是 socket_timeout 吗?或 stream_timeout 或 curl 超时?或者只是 php 脚本超时(我猜这是极不可能的,因为脚本在命令行上运行)。
有什么提示吗?
php - SplFileObject 迭代重复键 0
全部,
我一生都无法弄清楚为什么\SplFileObject
在以下代码中重复密钥。此示例使用 Nowdoc 作为文件流,但可以使用任何文件记录此效果。
PHP代码:
输出: