gpt4 book ai didi

php - PHP函数在每个空白行拆分数组?

转载 作者:行者123 更新时间:2023-12-04 01:31:10 25 4
gpt4 key购买 nike

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

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

我已经用过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(),但它适用于数字值,如果有些东西可以处理指定的值(例如换行,逗号或类似的东西),那会很好这样的!)。

最后,如果先前已经回答过,则表示歉意。我已经在平常的地方搜索了几次以寻找可能的解决方案。

希望你能帮助:)
狐狸

最佳答案

您可以做这样的事情。您也可以更改它以逐行读取文件,而不是使用file(),这将使用较少的内存,这在使用较大文件时可能很重要。

$handle = fopen('blah', 'r');
$blocks = array();
$currentBlock = array();
while (!feof($handle)) {
$line = fgets($handle);
if (trim($line) == '') {
if ($currentBlock) {
$blocks[] = $currentBlock;
$currentBlock = array();
}
} else {
$currentBlock[] = $line;
}
}
fclose($handle);
//if is anything left
if ($currentBlock) {
$blocks[] = $currentBlock;
}

print_r($blocks);

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com