Я читаю CSV-файл с двумя столбцами (ID, DATE).Я хочу получить удостоверение личности и использовать его для чего-то, но то, что я получаю, действительно странно.Для первой строки я получаю «3», а после приведения к целому числу я получаю 0. Конечно, я напечатал значение, а длина «3» равна 4. WTF?Я только устал или что-то не так?Вторая строка работает как положено.
ФАЙЛ CSV:
3;2017-11-24 08:30:00+01
2;2017-10-20 09:00:00+02
КОД:
if (($handle = fopen(__DIR__ . "/myfile.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
var_dump($data);
var_dump($data[0]);
var_dump(mb_strlen($data[0]));
var_dump(gettype($data[0]));
var_dump((int) $data[0]);
}
fclose($handle);
}
ВЫХОД:
array(2) {
[0] =>
string(4) "3"
[1] =>
string(22) "2017-11-24 08:30:00+01"
}
string(4) "3"
int(2)
string(6) "string"
int(0)
---------------------------
array(2) {
[0] =>
string(1) "2"
[1] =>
string(22) "2017-10-20 09:00:00+02"
}
string(1) "2"
int(1)
string(6) "string"
int(2)
РЕДАКТИРОВАТЬ:
Когда я меняю порядок строк, он всегда делает только первую строку.BOM?