php 函数在每个空行处分割数组?

标签 php arrays file multidimensional-array

我正在构建一个脚本,它将打开保存的文本文件,将内容导出到数组,然后将内容转储到数据库中。到目前为止,我已经能够非常愉快地完成文件上传,并且还可以打开所述文件。

我遇到的麻烦是文件的内容是可变的,它们具有固定的结构,但内容每次都会改变。文件的结构是每个“部分”由空行分隔。

我使用 php 的 file() 来获取一个数组...我不确定是否有办法在每次遇到空行时将该数组拆分?

  $file = $target_path;
  $data = file($file) or die('Could not read file!');

示例输出:

[0] => domain.com
[1] =>  # Files to be checked
[2] =>   /www/06.php
[3] =>   /www/08.php
[4] => 
[5] => domain2.com
[6] =>  # Files to be checked
[7] =>   /cgi-bin/cache.txt
[8] =>   /cgi-bin/log.txt
[9] => 
[10] => domain3.com
[11] =>  # Files to be checked
[12] =>   /www/Content.js
[13] => 

我知道字段 0 和 1 将是常量,它们将始终是域名,然后是哈希线。此后的行可以是 1 行到 1000 行之间的任意行。

我看过 array_chunk() ,它接近我想要的,但它适用于数值,如果有一些东西适用于指定值(例如新行或逗号),那就太好了或类似的东西!)。

最后,如果之前已经回答过这个问题,我们深表歉意。我已经在常见的地方搜索了几次以寻找潜在的解决方案。

希望能帮到你:) 福克斯

最佳答案

我认为您正在寻找的是 preg_split 。如果您只是按回车符拆分,则可能会错过仅包含空格或制表符的行。

$output =  array(...);//what you just posted
$string_output = implode('', $output);
$array_with_only_populated_lines = preg_split('`\n\W+`', $string_output);

关于php 函数在每个空行处分割数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188616/

相关文章:

php - Bindparam 不适用于我的分页脚本

javascript - 找到值存在的第一个索引

arrays - 在 Fortran 中更改分配数组的形状

JavaScript 将数组推送到类原型(prototype)问题

JavaScript FileSystem API 作为 Chess Alpha Beta 数据存储

linux - 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

file - 如何将一行文本附加到 ionic 2 中的现有文件?

php - 不确定 a 的值是多少

PHP fatal error : Out of memory - Memory Allocation Strategies for Big Data

php - MySQL 和 jQuery : Store dynamic generated content in database