| |
|
|
| | Строка из CSV файла с тремя "колнками": Фамилия | Имя | Отчество, но фаимиля не заполнена, т.е. строка выглядит так:
Когда режу ее ф-ей strtok():
$surname = strtok($value, ";");
$name = strtok(";");
$patronymic = strtok(";");
|
То получается что 'Пустое поле' пропускается и получается так:
$surname = "Имя";
$name = "Отчество";
Т.е. эта функция игнорирует "пустые поля".
А когда все поля заполнены, то все ОК.
Это так и должно быть? И как с этим бороться? | |
| |
|
|
| |
|
|
| |
для: tAleks
(08.09.2006 в 01:56)
| | |
Начиная с PHP 4.1.0, был изменен способ обработки пустых подстрок. До версии 4.1.0 эта
функция возвращала пустые подстроки, а начиная с 4.1.0 эти подстроки пропускаются.
Пример 2. Старый способ обработки пустых подстрок функцией strtok()
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
Вывод: string(0) ""
string(9) "something"
Пример 3. Новый способ обработки пустых подстрок функцией strtok()
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
Вывод: string(9) "something"
bool(false)
Помните также о том, что может быть возвращена подстрока "0". В логических выражениях
это значение может соответствовать FALSE.
|
Можно воспользоваться ф-ей explode, вот что получим:
<?
$text = ';Имя;Отчество';
$text = explode(";", $text);
$surname = $text[0];
$name = $text[1];
$patronymic = $text[2];
echo "<pre>";
print_r ($text);
?>
|
| |
| |
|
|
| |
|
|
| |
для: tAleks
(08.09.2006 в 01:56)
| | | чем плоха функция fgetcsv?
Самостоятельно разбирать CSV-формат - занятие довольно гадостное, никакими strtok'ами его нормально не реализовать. | |
| |
|
|