【问题标题】:How to save php file as csv file?如何将php文件保存为csv文件?
【发布时间】:2017-03-15 01:52:48
【问题描述】:

script1.php 返回结果:

helen,hunt
jessica,alba

script2.php 返回结果:

bradley,cooper
brad,pitt

script.php 看起来像这样

<?php
echo "name,surname";
require_once('script1.php');
require_once('script2.php');
?>

会回来

name,surname
helen,hunt
jessica,alba
bradley,cooper
brad,pitt

问题

也许这对某人来说是显而易见的,但我一直在苦苦挣扎如何保存这个 php 文件:script.php as csv 文件? script1.php 和 script2.php 都在 while 循环中产生结果,因此我可以将结果保存为 while 循环内的数组,但希望有人能为我原来的问题提供一个简单的解决方案。

【问题讨论】:

  • 您想将其保存到服务器上的文件中,还是希望用户下载?
  • 您希望将其保存到服务器上的文件中,还是希望用户下载? – AbraCadaver 10 分钟前
  • 我敢打赌他还在等…… 还是他?编辑:(ping)@AbraCadaver 你是吗? ;-)
  • 好新手女孩;发布的问题,给出的答案,请参阅那些。 相当快,对吧?打赌你不会在餐厅得到这样快速的服务。
  • @Fred-ii-: 不,他们准备实施第一个答案 ;-)

标签: php string csv require-once


【解决方案1】:

如果您的问题是如何访问终端,那么只需执行它

php -f script.php > file.csv

如果您想从脚本中执行此操作,可以使用output buffering。它将是:

<?php
ob_start();
echo "name,surname";
require_once('script1.php');
require_once('script2.php');
$size=ob_get_length();
if ($size > 0)
{
    $content = ob_get_contents();
    // save $content to file here
    ob_clean();
}
?>

或者,或者,如果您可以更改 script1.php 和 script2.php,让它们打开文件以进行附加 (fopen('fname.csv', 'a')),然后写入该文件,这将导致它们中的行都写入文件而不互相覆盖。

【讨论】:

  • 当您可以直接写入文件时,我没有看到回显点然后输出缓冲。
  • 大概问题是“script1.php 和 script2.php 不在我的控制范围内,他们已经回显了,我该如何将其打印到文件中”
  • 我假设 两者都通过 while 循环产生结果,所以我可以将结果保存为 while 循环内的数组 但是希望有人会为我的原始问题提供一个简单的解决方案
  • @AbraCadaver:确实。最后提出一个替代解决方案,尽管它可能不是人们在 PHP 中实际执行的方式。
【解决方案2】:

如果我没看错,您就是在尝试将这些脚本的输出保存到 CSV 文件中。 尝试做:

ob_start();
echo "name,surname";
require_once('script1.php');
require_once('script2.php');
$result = ob_get_contents();
file_put_contents('filename.csv', $result)

你也可以看看fputcsv:http://php.net/manual/en/function.fputcsv.php

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 2020-02-10
    • 2014-02-11
    • 2020-12-30
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    相关资源
    最近更新 更多