帮我用PHP解析这个文件 美国东部时间2009年11月27日星期五10:00:01 974 12506 美国东部时间2009年11月27日星期五11:00:01 988 12655 美国东部时间2009年11月27日星期五12:00:01 100512886 美国东部时间2009年11月27日星期五13:00:01 1026 13115 美国东部时间2009年11月27日星期五14:00:01 104213429
我尝试在\n和\t上分解,但文件中似乎没有选项卡…这将在所有空白集合中拆分,无论大小 Fri Nov 27 10:00:01 EST 2009 974 12506 Fri Nov 27 11:00:01 EST 2009 988 12655 Fri Nov 27 12:00:01 EST 2009 1005 12886 Fri Nov 27 13:00:01 EST 2009 1026 13115 Fri Nov 27 14:00:01 EST 2009 1042 13429帮我用PHP解析这个文件 美国东部时间2009年11月27日星期五10:00:01 974 12506 美国东部时间2009年11月27日星期五11:00:01 988 12655 美国东部时间2009年11月27日星期五12:00:01 100512886 美国东部时间2009年11月27日星期五13:00:01 1026 13115 美国东部时间2009年11月27日星期五14:00:01 104213429,php,parsing,Php,Parsing,我尝试在\n和\t上分解,但文件中似乎没有选项卡…这将在所有空白集合中拆分,无论大小 Fri Nov 27 10:00:01 EST 2009 974 12506 Fri Nov 27 11:00:01 EST 2009 988 12655 Fri Nov 27 12:00:01 EST 2009 1005 12886 Fri Nov 27 13:00:01 EST 2009 1026
这将拆分所有空白集合,而不管大小 Fri Nov 27 10:00:01 EST 2009 974 12506 Fri Nov 27 11:00:01 EST 2009 988 12655 Fri Nov 27 12:00:01 EST 2009 1005 12886 Fri Nov 27 13:00:01 EST 2009 1026 13115 Fri Nov 27 14:00:01 EST 2009 1042 13429
它似乎是固定的列宽。您需要:
- 使用substr()并提取每列,然后修剪空白
- 使用preg_split()并在一行“/\s+/”中查找两个或更多空格
- 其他
Explode可能会返回一组空元素,因为它只匹配一个字符/一个空格。它似乎是固定列宽的。您需要:
- 使用substr()并提取每列,然后修剪空白
- 使用preg_split()并在一行“/\s+/”中查找两个或更多空格
- 其他
$line = "Fri Nov 27 10:00:01 EST 2009 974 12506";
preg_match_all('~\S+~', $line, $parts);
print_r($parts[0]);
其余的由你决定
$line = "Fri Nov 27 10:00:01 EST 2009 974 12506";
preg_match_all('~\S+~', $line, $parts);
print_r($parts[0]);
$lines=explode(“\r\n”,$str);
foreach($line作为$line){
echo'date='.substr($line,0,28).PHP_EOL;
echo'var1='.substr($line,28,12).PHP_EOL;
echo'var2='.substr($line,40,12).PHP_EOL;
回声“”; } 如果可能,PHP首先将所有传入变量视为整数,因此如果文本文件具有可预测的长度(我可以看到24、12、12个字符),那么0000000 974将被正确解析为整数974,而无需使用trim 如果可以的话,避免使用正则表达式不是总是最好的吗 $lines=explode(“\r\n”,$str); foreach($line作为$line){ echo'date='.substr($line,0,28).PHP_EOL; echo'var1='.substr($line,28,12).PHP_EOL; echo'var2='.substr($line,40,12).PHP_EOL; 回声“
”; } 如果可能,PHP首先将所有传入变量视为整数,因此如果文本文件具有可预测的长度(我可以看到24、12、12个字符),那么0000000 974将被正确解析为整数974,而无需使用trim 如果可以的话,避免使用正则表达式不是总是最好的吗