【问题标题】:Parsing a non-excel excel file解析非excel excel文件
【发布时间】:2015-03-14 19:09:31
【问题描述】:
所以我有了获取信息的方法。这部分并不难:
<?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 部分了。
【问题讨论】:
标签:
php
import-from-excel
【解决方案1】:
使用 substr($aid, 0, strpos($aid, "\n")) 之类的内容获取 csv 的第一行。
strpos($aid, "\n") 将查找第一次出现的换行符 (\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 将删除所有空格(因为您的列以竖线分隔符结尾),这样您就不会在结果数组中出现“空”列。