【问题标题】:How to append string to file without new line break using storage laravel?如何使用存储 laravel 将字符串附加到文件而不换行?
【发布时间】:2020-01-16 15:46:49
【问题描述】:

尝试使用Storage:: disk('local')->append() 方法在同一行的文件中添加字符串,但在输出文件中我将每个字符串都放在新行上

我所做的是:

$string = "first-"; 
Storage::disk('local')->append('filename', $string);
$string = "second"; 
Storage::disk('local')->append('filename', $string);

输出文件是

first-
second

但我正在尝试获取不带换行符的文件

first-second

【问题讨论】:

  • 不确定是否有内置方法可以做到这一点,但您可以尝试更长的方法,获取文件的内容,如$contents = file_get_contents(...),附加到PHP,通过@987654329 @,然后将整个字符串放入文件中。 (或类似的东西)
  • 文件将是一个大文件,不想打开它并加载到内存中
  • 是的,公平点。您可以在此处查看FileSystem 类(Storage::disk() 外观方法的扩展)的所有可用方法:laravel.com/api/5.8/Illuminate/Contracts/Filesystem/…。乍一看,我什么也没看到,但做一些挖掘,可能会发现一些有用的东西。
  • stackoverflow.com/questions/54659226/… 检查那个答案。不幸的是,追加读取整个数据
  • 经过测试,我最终使用了 php "file_put_contents" 函数,它完成了工作并且没有填满内存

标签: php laravel laravel-5


【解决方案1】:

append() 使用 FilesystemAdapter

public function append($path, $data, $separator = PHP_EOL)

PHP_EOL 表面上用于以跨平台兼容的方式查找换行符。

所以,你可以使用:

Storage::disk('local')->append('filename', $string, null);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 2012-02-03
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 2021-02-09
    • 2011-12-08
    • 2018-02-22
    相关资源
    最近更新 更多