我试图跳过 CSV 文件中的前几行。在其余行中,第一列是序数 - 1、2、3 等。但由于某种原因,使用 is_numeric 完全失败。我认为这可能是引号,但手册中的测试数组有引号,它可以正确打印出答案。
打开并检查 $afile 后...
while (($row = fgetcsv($afile)) !== FALSE) {
// first three rows don't have numbers in first column
if (is_numeric($row[0]))
print "<tr><td>{$row[7]}</td></tr>";
else
print "not numeric: {$row[0]}<br/>";
}
一切都显示为“非数字”!
当我 print_r 数组时,列中仍然有引号,所以我尝试运行 str_replace 来去除引号,并且 is_numeric仍然始终显示为 false ...
完全困惑,希望有人能提供帮助,我希望这只是一个愚蠢的“午夜编码”问题......
[编辑]
好的,因为我怀疑这与数据有关,但我看不出有什么问题。当我在 BBEdit 中“显示不可见”时,每个字符之间都有一个倒置的问号。看:
所以..这很奇怪。假设我要一直得到这些不可见的东西,直到我能弄清楚导出的数据.. PHP 可以做任何事情来清理数据吗?也许是字符集问题?
[再次编辑] 感谢 martinstoeckli,我使用 mb_convert_string 转换了数据,现在 is_numeric 正确返回。