我正在构建一个脚本,它将打开保存的文本文件,将内容导出到数组,然后将内容转储到数据库中。到目前为止,我已经能够非常愉快地完成文件上传,并且还可以打开所述文件。
我遇到的麻烦是文件的内容是可变的,它们具有固定的结构,但内容每次都会改变。文件的结构是每个“部分”由空行分隔。
我使用 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/