解析非 Excel Excel 文件


Parsing a non-excel excel file

所以我有获取信息的方法。这部分并不难:

    <?php
$aid = file_get_contents(http://www.cybernations.net/assets/CyberNations_SE_Aid_Stats_3132015520002.zipl);
$war = file_get_contents(http://www.cybernations.net/assets/CyberNations_SE_War_Stats_3132015525002.zip);
$nation = file_get_contents(http://www.cybernations.net/assets/CyberNations_SE_Nation_Stats_3132015510002.zip);
?>

遇到很多麻烦的是弄清楚如何获取这些信息并将其解析为我想要的内容。这是一个保存为.txt的 excel 文件,我需要做的是抓取列并将它们放入 SQL 表中。不过,一旦我有了列,我就可以处理SQL部分。

使用 substr($aid, 0, strpos($aid, "'n")) 之类的东西获取 csv 的第一行。

strpos($aid, "'n")将找到换行符 (') 的第一个匹配项。然后,从字符串的开头获取子字符串到该字符,这将返回字符串的第一行。

从那里,您可以使用explode()使用文件中存在的管道分隔符将字符串拆分为列名数组。

例:

<?php
    $aid = file_get_contents('http://www.cybernations.net/assets/CyberNations_SE_Aid_Stats_3132015520002.zip');
    $war = file_get_contents('http://www.cybernations.net/assets/CyberNations_SE_War_Stats_3132015525002.zip');
    $nation = file_get_contents('http://www.cybernations.net/assets/CyberNations_SE_Nation_Stats_3132015510002.zip');
    $aid_columns = array_filter(explode("|", substr($aid, 0, strpos($aid, "'n"))));
?>

array_filter将删除所有空格(因为您的列以管道分隔符结尾),这样您就不会在生成的数组中出现"空"列。