Не работает импорт/экспорт в XLS/CSV
Материал из 1GbWiki.
(Различия между версиями)
Версия 19:19, 31 мая 2010 (править) 77.239.235.129 (Обсуждение) ← К предыдущему изменению |
Текущая версия (20:01, 31 мая 2010) (править) (отменить) Dmih (Обсуждение | вклад) м (Правки 77.239.235.129 (обсуждение) откачены к версии Dmih) |
||
Строка 1: | Строка 1: | ||
- | + | == Проблема 1 == | |
- | + | ||
- | + | '''Симптомы'''. | |
- | + | # При импорте данных из файла, результат парсинга даннных не отображается на странице.<br /> | |
- | + | '''Решение''' | |
- | + | # Найти в скриптах функцию [http://php.net/fgetcsv fgetcsv()] и перед ее вызовом вставить код: | |
- | http:// | + | setlocale (LC_ALL, 'ru_RU.cp1251'); |
- | + | ||
- | + | == Проблема 2 == | |
- | + | '''Симптомы'''. | |
- | + | # При импорте страница зависает, отображает "белый лист", ошибки про нехватку памяти или про превышение максимально допустимого времени исполнения. | |
- | + | '''Решение'''. | |
- | + | # Найти функцию <code>GetInt4d()</code> и заменить ее на: | |
+ | |||
+ | function GetInt4d ($data, $pos) { | ||
+ | // by Andreas Rehm | ||
+ | $_or_24 = ord($data[$pos+3]); | ||
+ | if ($_or_24>=128) $_ord_24 = -abs((256-$_or_24) << 24); | ||
+ | else $_ord_24 = ($_or_24&127) << 24; | ||
+ | |||
+ | return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | | ||
+ | (ord($data[$pos+2]) << 16) | $_ord_24; | ||
+ | } | ||
+ | |||
+ | [[Категория:PHP]] | ||
+ | [[Категория:Проблемы с известными скриптами]] |
Текущая версия
[править] Проблема 1
Симптомы.
- При импорте данных из файла, результат парсинга даннных не отображается на странице.
Решение
- Найти в скриптах функцию fgetcsv() и перед ее вызовом вставить код:
setlocale (LC_ALL, 'ru_RU.cp1251');
[править] Проблема 2
Симптомы.
- При импорте страница зависает, отображает "белый лист", ошибки про нехватку памяти или про превышение максимально допустимого времени исполнения.
Решение.
- Найти функцию
GetInt4d()
и заменить ее на:
function GetInt4d ($data, $pos) { // by Andreas Rehm $_or_24 = ord($data[$pos+3]); if ($_or_24>=128) $_ord_24 = -abs((256-$_or_24) << 24); else $_ord_24 = ($_or_24&127) << 24; return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | $_ord_24; }