Мне нужно проверить первую строку файла csv, чтобы увидеть, содержит ли он заголовки для столбцов (число, имя, количество). Если первая строка содержит эти заголовки, выйдите из файла или добавьте номер, имя, количество, если первая строка не содержит эту информацию.
Я пытался проверить, содержит ли первый столбец первую строку число, которое не означает заголовков.
Вот код, который я использовал. И еще раз спасибо за вашу помощь.
$rows = $phones = [];
if (($handle = fopen($file_tmp, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
list($phone, $name, $amount) = $data;
if(!($data = fgetcsv($handle))) {
return; //most likely empty file
}
if(!is_numeric($data[0])) {
fputcsv($handle, array('number', 'name', 'amount'));
}
$phone = str_replace(['(',')','-'], '', $phone);
$amount = str_replace(['$'], "", $amount);
$amount = sprintf('$%.2f', $amount);
// track unique phone numbers here
if (isset($phones[$phone])) {
// it a duplicate so just ignore the entire row
continue;
}
// otherwise it a new phone number so store it
$phones[$phone] = true;
$rows[] = [$phone, $name, $amount];
// or output directly
//echo "$phone | $name | $amount";
}
fclose($handle);
}
У вас есть два варианта выбора между:
amount
, вы можете проверить, действительно ли значение для любой строкиЧтобы разобрать "$ 100,00" на номер в PHP: