所以我有这个小的“xls”文件,实际上是制表符分隔的txt文件。 在其中,我有一个如下所示的值:'000000000003014610'。当使用excel打开时,该值正确读取为“3014610”,但是通过使用选项卡将其拆分并使用PHP读取它会得到意外结果 - intval()总是给出0,ltrim($ val,'0')给我字符串完整的,strlen($ val)给出了惊人的35
有谁知道如何解决这个问题,问题可能是什么?
由于
答案 0 :(得分:0)
我最好的猜测是strlen()是正确的,因为它是一个35个字符的字符串,并且你试图把它转换为int而且它太大了。举个例子:
$cell = explode(" ", $rawCellData);
$cell_num = (int) $cell[0];
$cell_data = (int) $cell[1];
$cell_text = (string) $cell[2];
echo "$cell_num $cell_data $cell_text<br>";
你会发现$ cell_data与它应该的相等。
查看这两个参考文献: php type juggling和php string conversion
但实质上,由于字符串以零开头,因此php将其视为一个int。