|
|
|
| Здравствуйте, такоя дело, есть txt файл весит он 135 мб. не могу его открыть функцией file_get_contents('file.txt') страница просто не загружаеться говорит не полученя данные от сервера, обычный файл (100-200 кб) открывается моментально, а этот даже ошибки не показывает, в чем дело? | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 09:45)
| | размер большой у него, пробуйте fgets(): | |
|
|
|
|
|
|
|
для: Lotanaen
(24.04.2012 в 09:52)
| | Warning: fgets() expects parameter 1 to be resource, string given in C:\www-game\index.php on line 3 | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:05)
| | Не правильно функцию используете. | |
|
|
|
|
|
|
|
для: confirm
(24.04.2012 в 10:08)
| | ? | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:12)
| | Приучите вы себя в конце то концов читать в руководстве о тех функциях, о которых вам говорят, а не гадать. Уважайте людей вам отвечающим, экономя их время по вопросам, которые вы можете разрешить и сами. Хотите программировать? Изучайте. | |
|
|
|
|
|
|
|
для: confirm
(24.04.2012 в 10:15)
| | Если вам дорого ваше время вас за пальцы не кто не дергает! | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:29)
| | Да мне то.... Это ведь вам надо в первую очередь - изучать, думать. | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 09:45)
| | максимальный объем памяти выделяемый Апач для скрипта по умолчанию 8мб
зачем же вы пытаетесь впихнуть невпихуемое | |
|
|
|
|
|
|
|
для: Valick
(24.04.2012 в 09:59)
| | А где его изменить мона? | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:05)
| | нигде если вы не хостер
можете даже писмо хостеру написать с просьбой, боюсь кроме мата вы в ответ ничего не услышите | |
|
|
|
|
|
|
|
для: Valick
(24.04.2012 в 10:12)
| | )) да это у меня на локальной машине дело происходит ? у меня все ключи)) как эьто сделать скажите | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:15)
| | а что Вы с этим файлом хотите сделать? не выводить же в браузер 132 МБ? | |
|
|
|
|
|
|
|
для: Lotanaen
(24.04.2012 в 10:20)
| | Мне его отредактировать над, а точнее загнать в базу, там 126т. строк | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:32)
| | Вам cheops уже ответил - обрабатывайте в цикле - размер блока в fgets() можете изменять. А это у вас готовый дамп БД? | |
|
|
|
|
|
|
|
для: Lotanaen
(24.04.2012 в 10:36)
| | Вообше это был БД MSSQL залитьеё я не смог и мне сказали что не смогу потом я её перевел в MS Access и такую я не смог залить потом я перевел её в txt и хочу её залить тока там много погрешностей | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:43)
| | А залить в MySQL хотите? | |
|
|
|
|
|
|
|
для: Lotanaen
(24.04.2012 в 10:47)
| | Да | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:51)
| | А на структуру файла можно взглянуть чуток? | |
|
|
|
|
|
|
|
для: Lotanaen
(24.04.2012 в 10:55)
| | А как это структуру? что вы конкретно хотите знать я новичек в бд и ваши термины пока что для меня не досягаемяе )) | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:15)
| | Объем выделяемый скрипту можно изменить в php.ini, директивой memory_limit | |
|
|
|
|
|
|
|
для: cheops
(24.04.2012 в 10:25)
| | там у меня проставлено было до операции 1000мб. | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 09:45)
| | Вообще такие объемные файлы не принято открывать функцией file_get_contents(), особенно, если вам нужен не весь файл, а какая-то его часть (100 с гаком мегабайт оперативной памяти это довольно много). Обычно используют функцию fopen() для получения дескриптора и функци fgets() совместно с циклом while() для получения строк. Это текстовый или бинарный файл?
<?php
// Открыть файл
$handle = fopen("/path/to/file/135Mb.txt", "r");
// В цикле обрабатываем файл построчно
while (!feof($handle))
{
$buffer = fgets($handle, 4096);
// Обработка строки файла $buffer;
}
// Закрыть файл
fclose($handle);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(24.04.2012 в 10:29)
| | Это текстовы файл! там много лишних пробелов мне над все укоротить до однократных пробелов | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:37)
| | 1) Эту операцию нужно провернуть один раз или она будет регулярной?
2) Сервер удаленный или это ваша машина, под рукой? Т.е. есть ли возможность вообще обойтись без Apache, напрямую запустив PHP-файл, Apache к такие объемы плохо переваривает, а чистый PHP-скрипт перемелет что угодно. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2012 в 10:43)
| | Эту операцию нужно провернуть один раз или она будет регулярной
Да это над зделать один раз!
2) Сервер удаленный или это ваша машина, под рукой
Да это все у меня на машине и все под рукой | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 10:47)
| | Тогда в голову не берите, увеличивайте размер memory_limit, отключайте ограничение по времени выполнения при помощи set_time_limit(0) и используйте file_get_contents('file.txt') (зря что-ли столько оперативной памяти у вас на компьютере). Скрипт запускайте без Apache. Т.е. либо в командной строке пишите php.exe -f index.php, либо расширению .php назначайте обработчик php.exe и выполняйте его просто щелчком мыши или клавишей Enter. Т.е. один раз загрузить все в память, поработать с файлом и выгрузить его на диск - это вполне нормально, только Apache вам в этой задаче будет только мешать. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2012 в 10:55)
| | С командной строкой фокус не получаеться когда пишу c:/php/php.exe -f c:/www/index.php выводит какие то 3 не понятныйх символов и все скрипт не выполняеться (для примера я назначил в index.php простую операцию такую file_put_contents('123', '123');) ачто значит расширению .php назначайте обработчик php.exe и выполняйте его просто щелчком мыши или клавишей Enter я чуток не понимаю как это? | |
|
|
|
|
|
|
|
для: Dazzl
(24.04.2012 в 11:19)
| | 1) Лучше сделайте вывод "Hello world!", дело в том, что без Apache у вас перестают работать многие переменные окружения, файл 123 может и создается, только не там, где вы ожидаете (путь к директории скорее всего потребуется выставлять явно).
2) В проводнике, нажмите на файл с расширением .php правой кнопкой мыши и выберите пункт Свойства, напротив, "Приложение" нажмите кнопку Изменить, далее Обзор, найдите php.exe и назначьте его в качестве обработчика этого расширения. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2012 в 11:31)
| | (путь к директории скорее всего потребуется выставлять явно).
Да, это помогло, спасибо! ща опробую свою затею | |
|
|
|