|
|
|
| есть Exel фаил с разрешением .CSV, моя задача перекинуть данные из этого файла в базу данных MySQL.
програмку я написал, работает всё замечательно, кроме одной маленькой неприятной вещи.
когда в Exel ячейки встречается двойная ковычка, то в БД происходит запись с ещё несколько добавленных ковычек.
например:
ячейка со строкой: (15" Монитор), запишется в таком виде("15"" Монитор")
вопрос: как от этого избавиться? | |
|
|
|
|
|
|
|
для: Crux
(25.09.2004 в 21:28)
| | На каком этапе происходит подмена кавычек двойными? До внесения в базу данных или после? В любом случае это просто устранить при помощи функции str_replace(), заменив две подряд идущие кавычки одной:
<?php
$str = '15"" Монитор';
$str = str_replace('""','"',$str);
?>
|
| |
|
|
|
|
автор: elenaki (26.09.2004 в 15:38) |
|
|
для: cheops
(25.09.2004 в 22:31)
| | просто надо писать 15'' (две одинарных кавычки, а не одна двойная)
у меня точно так же написано и все работает. | |
|
|
|
|
|
|
|
для: elenaki
(26.09.2004 в 15:38)
| | ковычки появляются, когда происходит считывание из файла.
хотелось бы устранить проблему именно на этом уровне выполнения скрипта.
str_replace для этого не подходит | |
|
|
|
|
|
|
|
для: Crux
(26.09.2004 в 17:54)
| | А каким образом файл разбирается, при помощи функции fgetcsv() или самопальным скриптом? Нужно чуть больше информации, чтобы обойти проблему, а ещё лучше кусок кода. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2004 в 18:07)
| | Получаю содержимое файла в виде массива
| |
|
|
|
|
|
|
|
для: Crux
(26.09.2004 в 19:00)
| | А строки в массиве чем разбиваются, explode() или strtok()? Или в файле только один столбец? | |
|
|
|
|
|
|
|
для: cheops
(26.09.2004 в 19:24)
| | дольнейшее разбиение происходит при помощи explode(), но это уже не имеет значение т.к. лишнии кавычки уже появились
P.S. кстате, вопрос на засыпку, как правильно "кавычки" или "ковычки" | |
|
|
|
|
|
|
|
для: Crux
(26.09.2004 в 19:50)
| | Попытался сейчас воспроизвести ситуацию - это Excel сохраняет так текстовые переменные. Я вспомнил так и должно быть - это проделки VB - там экранирование не по людски сделано - кавычки экранируется двойным символом, а так как из ёкселевского файла в другие форматы преобразование осуществляется при его помощи - бесполезно менять формат - он даже в текстовом виде так сохраняет. Поэтому без замены str_replace() или наборе одинарными кавычками, как предлагает elenaki здесь сделать будет что-то сложно.
PS Word и Lingvo единодушно за "кавычки" :))) | |
|
|
|
|
|
|
|
для: cheops
(26.09.2004 в 20:08)
| | Бррр....
точно, а я просмотреть фаил в текстовом виде и не сообразил.
пора барать отпуск, голова уже не фурычет:))
сасибо за помощь!
кАвычки mustdie | |
|
|
|