【问题标题】:php - file_get_contents() or similar functionphp - file_get_contents() 或类似函数
【发布时间】:2011-10-27 14:37:50
【问题描述】:

我正在使用 file_get_contents() 来检索我存储在 .txt 文件中的县列表。每个县都有自己的路线。

有没有办法在每个条目周围添加引号,然后在函数中添加逗号?我的一个限制是它必须在函数中填充,并且不能是两个单独的命令。

这个可以吗?

或者也许我需要为此研究另一个函数?

【问题讨论】:

  • 为什么不能使用两个函数?
  • One restriction I have is that it would have to populate within the function - 为什么?你想要的最终结果是什么 - 你是在写 CSV 还是什么?
  • 两个单独的命令是什么意思?
  • @Jleagle @DaveRandom;我正在编辑我们的应用程序,我们只允许编辑特定文件以向表单添加附加字段。该文件被另一个文件抓取,该文件翻译行并对其进行处理以填充字段(我们无权访问该文件)。因此,添加任何其他附加命令都会中断操作。
  • 有什么理由拒绝投票?

标签: php file function file-get-contents


【解决方案1】:
$countries = file('countries.txt'); // get country list into an array

$fixed_countries = array_map(function($v) { return '"' . trim($v) . '",'; }, $countries);

【讨论】:

  • 我继续使用批处理脚本用适当的引号和逗号重新填充我的列表,将文件重新导入服务器,然后使用 file() 填充数组。像魅力一样工作。谢谢
【解决方案2】:

你可以很容易地做到这一点,如果你使用file而不是file_get_contents会更好:

$callback = create_function('$c', 'return "\"".trim($c)."\"";');
$countries = array_map($callback, file('countries.txt'));
return implode(', ', $countries);

我写了$callback 的语法对 PHP

$callback = function($c) { return '"'.trim($c).'"'; };

See it in action.

【讨论】:

  • 反对者:请通过发表评论帮助我改进这个答案。
【解决方案3】:

如果您逐行阅读,filefile_get_contents 更合适:

echo implode(',',
             array_map(function($county) {return '"' . trim($county) . '"';}),
                       file('counties.txt'));

【讨论】:

    【解决方案4】:

    当然。

    $countries = explode("\n",'"'.str_replace("\n","\",\n\"",file("countries.txt")));
    

    这应该像这样转换文件:

    country1
    country2
    ...
    

    到这样的数组中:

    array('"country1",','"country2",',...).
    

    这就是你想要的,对吧?

    【讨论】:

    • 结果将是array(0 => '"Array'),因为您将数组附加到字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2016-06-12
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多