问题标签 [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.
ftp - 尝试使用 FTP 传输文件时出现文件覆盖问题
我有一个只有 List 和 Put 权限的 FTP 服务器。但没有删除、覆盖和重命名权限。
现在,当我尝试使用以下实现使用简单的 FTP 传输文件时
在上面的代码中,文件是使用文件对象实例在远程创建的。后来我试图用缓冲流写文件。在这里,系统就像它正在写入一个已经创建的文件一样,并且我的服务器没有任何覆盖权限,从而引发以下错误。
请让我知道如何使用文件对象处理文件传输,以便文件创建和写入流应该同时发生。
php - PHP 中的 SplFileObject 与 fopen
与PHPfopen
相比,使用的优缺点是什么?SplFileObject
据我所见,SplFileObject
在适用的情况下抛出异常,这使得在try...catch
用于错误处理时很方便。除此之外,还有其他理由推荐其中一个吗?
(奖励:为什么叫它SplFileObject
?Spl
代表什么?为什么不简单FileObject
?)
更新:的一个限制SplFileObject
是它(还)没有close
成员函数。在某些情况下,这可能是一个问题(例如:Unlink 和 SplFileObject)。
php - 为什么我的 php 群在运行两次命令时没有检测到现有的锁?
稍微解释一下,我有一个 Symfony2 设置。我正在使用我扩展的抽象命令类。我希望这些批次中的任何一个只能运行一次。我的目标是制作一个我打开并聚集的锁定文件,以便当 php 脚本以任何可能的方式终止时自动释放锁定。
为了实现这一点,我创建了一个名为 Lock 的类。此类扩展了 SplFileObject 并且基本上是在某处(通常是 /var/lock/*)创建 *.lock 的包装器。现在我在检测这个锁时遇到了问题。我确实有一个使用 fopen 和flock 的设置。由于某种原因,它不会再检测到它了。
我创建了一个 OOP 结构来基本上做我想做的事:
- 确定锁定文件的名称(使用文件夹)
- 创建一个锁对象
- 如果目录不存在,则创建目录并锁定文件
- 调用 SplFileObject::__construct()
- 锁定文件
我不能让它与句柄和 spl 文件对象一起使用。如果我运行脚本,让它休眠 15 秒并在另一个控制台中运行相同的脚本,我将得到脚本成功锁定文件的结果,flock 返回 true。如果我在同一个脚本中的同一个锁文件上创建 2 个 Lock 对象,我在第一个锁上得到 true,在第二个上得到 false,这意味着它第二次无法获得锁。该脚本似乎有效。
但是,当我在两个脚本中使用 2 个锁运行脚本 2 次时,我在两个脚本上都得到 True 和 false ......这意味着它似乎没有跨脚本正确锁定文件:/
有没有人可以告诉我我做错了什么?我检查了文件名,两次运行脚本时它都相同。我尝试了多种权限,例如 777、755、733,但没有区别。
我这样称呼它(只是课程的一部分):
锁.php
php - SplFileObject __toString 继承
我有一个扩展 SplFileObject 并实现__toString
方法的类,但我似乎得到了不一致的行为,具体取决于方法的调用方式。有时调用父方法,有时调用子方法。谁能解释为什么会这样?
php - SplFileObject::READ_CSV 似乎没有正确读取 CSV 文件 - 忽略附件“
在问这个问题之前,我已经阅读了文档并广泛搜索了这个网站。
CSV 行示例;
"ABEL, TAMMY 454454","End of: ABEL, TAMMY 454454",QP544454,28/10/2012 11:41,"0811 unlawfully use, possess","STEPHENS, JEREMY 54544454",LINK OPERATIONS,Located details incorrect,Entity: FORD FALCON Reg #: Colour: White
我已经回显了输出,但它似乎无法识别外壳字符(“)。SetCSVControl
尽管我使用的是默认外壳,但我尝试使用它。我还尝试在其中转义外壳字符SetCSVControl
(因为我无法控制我正在导出的 CSV 文件)。
例如,当我打印第一列的结果时,应该是 (ABEL, TAMMY 454454) 我正在接收 ("ABEL)。
我读过这可能是我的语言环境设置的问题(en-GB,en-US;q=0.8,en;q=0.6)?
任何帮助都会很棒。
php - 从 SplFileInfo 对象获取流资源
我正在调用一个需要文件流资源的方法,如下所示:
该$splFileInfo
对象是 的一个实例SplFileInfo
。
$splFileInfo
有没有办法在不调用的情况下获取对象的流资源fopen
?
php - php; 将 fgetcsv 与 SplFileObject::fseek 一起使用;行读问题
在读取 csv 文件中的特定行时,我尝试使用SplFileObject::fseek
with fgetcsv
。
要读取第 2 行(例如),我执行 afseek(1)
并读取 with fgetcsv
,得到第 2 行。
当我做 afseek(0)
并阅读时fgetcsv
,我有第 0 行。
所以以这种方式读取第 1 行是有问题的。(我知道我可以连续阅读 2 行但不认为这很好)。
我发现 2008 年 PHP 版本 5.2.6 报告了这个问题:SplFileObject: fgetcsv after seek 返回错误的行。
我正在使用 PHP 版本 5.4.19。
有人有这方面的信息吗?这是故意的吗?
php - 创建 splFileObject 的多个实例
我有一堂类似的课
似乎只有第一个调用的方法才有效,如果将它们一起调用,则只有调用的第一个方法才有效。我认为这个问题与我不了解new
对象是如何构造的有关。
php - php没有在挂载的文件系统上打开文件
我有以下代码给我带来了问题。
当我使用当前未注释的 $fullfilename 变量声明时,它可以正常工作,但是当我使用被注释掉的代码时,它不会。我收到以下错误:
唯一的区别是我要使用的数据是安装在 /data 的单独驱动器。整个结构的权限是 777: drwxrwxrwx 2 root root 53248 Jan 7 14:31 data
。
我在这里不知所措,file_exists() 和 is_readable() 也有同样的问题。有人可以在这里给我一些指导吗?
php - 使用 list() 未定义的偏移量
我正在使用SplFileObject
. 此 CSV 有近 100,000 条记录和多列。
其中一些列是空的。
我有以下代码:
当我运行脚本时,我总是得到一个错误:
PHP 注意:未定义的偏移量:第 5 行 script.php 中的 1
PHP 注意:未定义的偏移量:第 5 行 script.php 中的 2
PHP 注意:未定义的偏移量:第 5 行 script.php 中的 35
第5行是实际list() = $row
有没有办法解决这个问题?也许通过检查数组是否有值?
谢谢