Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не открывается txt файл
 
 автор: Dazzl   (24.04.2012 в 09:45)   письмо автору
 
 

Здравствуйте, такоя дело, есть txt файл весит он 135 мб. не могу его открыть функцией file_get_contents('file.txt') страница просто не загружаеться говорит не полученя данные от сервера, обычный файл (100-200 кб) открывается моментально, а этот даже ошибки не показывает, в чем дело?

  Ответить  
 
 автор: Lotanaen   (24.04.2012 в 09:52)   письмо автору
 
   для: Dazzl   (24.04.2012 в 09:45)
 

размер большой у него, пробуйте fgets():

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:05)   письмо автору
 
   для: 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

  Ответить  
 
 автор: confirm   (24.04.2012 в 10:08)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:05)
 

Не правильно функцию используете.

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:12)   письмо автору
 
   для: confirm   (24.04.2012 в 10:08)
 

echo fgets('1.txt');
?

  Ответить  
 
 автор: confirm   (24.04.2012 в 10:15)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:12)
 

Приучите вы себя в конце то концов читать в руководстве о тех функциях, о которых вам говорят, а не гадать. Уважайте людей вам отвечающим, экономя их время по вопросам, которые вы можете разрешить и сами. Хотите программировать? Изучайте.

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:29)   письмо автору
 
   для: confirm   (24.04.2012 в 10:15)
 

Если вам дорого ваше время вас за пальцы не кто не дергает!

  Ответить  
 
 автор: confirm   (24.04.2012 в 10:31)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:29)
 

Да мне то.... Это ведь вам надо в первую очередь - изучать, думать.

  Ответить  
 
 автор: Valick   (24.04.2012 в 09:59)   письмо автору
 
   для: Dazzl   (24.04.2012 в 09:45)
 

максимальный объем памяти выделяемый Апач для скрипта по умолчанию 8мб
зачем же вы пытаетесь впихнуть невпихуемое

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:05)   письмо автору
 
   для: Valick   (24.04.2012 в 09:59)
 

А где его изменить мона?

  Ответить  
 
 автор: Valick   (24.04.2012 в 10:12)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:05)
 

нигде если вы не хостер
можете даже писмо хостеру написать с просьбой, боюсь кроме мата вы в ответ ничего не услышите

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:15)   письмо автору
 
   для: Valick   (24.04.2012 в 10:12)
 

)) да это у меня на локальной машине дело происходит ? у меня все ключи)) как эьто сделать скажите

  Ответить  
 
 автор: Lotanaen   (24.04.2012 в 10:20)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:15)
 

а что Вы с этим файлом хотите сделать? не выводить же в браузер 132 МБ?

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:32)   письмо автору
 
   для: Lotanaen   (24.04.2012 в 10:20)
 

Мне его отредактировать над, а точнее загнать в базу, там 126т. строк

  Ответить  
 
 автор: Lotanaen   (24.04.2012 в 10:36)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:32)
 

Вам cheops уже ответил - обрабатывайте в цикле - размер блока в fgets() можете изменять. А это у вас готовый дамп БД?

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:43)   письмо автору
 
   для: Lotanaen   (24.04.2012 в 10:36)
 

Вообше это был БД MSSQL залитьеё я не смог и мне сказали что не смогу потом я её перевел в MS Access и такую я не смог залить потом я перевел её в txt и хочу её залить тока там много погрешностей

  Ответить  
 
 автор: Lotanaen   (24.04.2012 в 10:47)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:43)
 

А залить в MySQL хотите?

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:51)   письмо автору
 
   для: Lotanaen   (24.04.2012 в 10:47)
 

Да

  Ответить  
 
 автор: Lotanaen   (24.04.2012 в 10:55)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:51)
 

А на структуру файла можно взглянуть чуток?

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 11:21)   письмо автору
 
   для: Lotanaen   (24.04.2012 в 10:55)
 

А как это структуру? что вы конкретно хотите знать я новичек в бд и ваши термины пока что для меня не досягаемяе ))

  Ответить  
 
 автор: cheops   (24.04.2012 в 10:25)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:15)
 

Объем выделяемый скрипту можно изменить в php.ini, директивой memory_limit

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:32)   письмо автору
 
   для: cheops   (24.04.2012 в 10:25)
 

там у меня проставлено было до операции 1000мб.

  Ответить  
 
 автор: cheops   (24.04.2012 в 10:29)   письмо автору
 
   для: 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($handle4096);
     
// Обработка строки файла $buffer;
  
}
  
// Закрыть файл
  
fclose($handle);
?> 

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:37)   письмо автору
 
   для: cheops   (24.04.2012 в 10:29)
 

Это текстовы файл! там много лишних пробелов мне над все укоротить до однократных пробелов

  Ответить  
 
 автор: cheops   (24.04.2012 в 10:43)   письмо автору
 
   для: Dazzl   (24.04.2012 в 10:37)
 

1) Эту операцию нужно провернуть один раз или она будет регулярной?
2) Сервер удаленный или это ваша машина, под рукой? Т.е. есть ли возможность вообще обойтись без Apache, напрямую запустив PHP-файл, Apache к такие объемы плохо переваривает, а чистый PHP-скрипт перемелет что угодно.

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 10:47)   письмо автору
 
   для: cheops   (24.04.2012 в 10:43)
 

Эту операцию нужно провернуть один раз или она будет регулярной
Да это над зделать один раз!

2) Сервер удаленный или это ваша машина, под рукой
Да это все у меня на машине и все под рукой

  Ответить  
 
 автор: cheops   (24.04.2012 в 10:55)   письмо автору
 
   для: 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 вам в этой задаче будет только мешать.

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 11:19)   письмо автору
 
   для: 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 я чуток не понимаю как это?

  Ответить  
 
 автор: cheops   (24.04.2012 в 11:31)   письмо автору
 
   для: Dazzl   (24.04.2012 в 11:19)
 

1) Лучше сделайте вывод "Hello world!", дело в том, что без Apache у вас перестают работать многие переменные окружения, файл 123 может и создается, только не там, где вы ожидаете (путь к директории скорее всего потребуется выставлять явно).
2) В проводнике, нажмите на файл с расширением .php правой кнопкой мыши и выберите пункт Свойства, напротив, "Приложение" нажмите кнопку Изменить, далее Обзор, найдите php.exe и назначьте его в качестве обработчика этого расширения.

  Ответить  
 
 автор: Dazzl   (24.04.2012 в 11:35)   письмо автору
 
   для: cheops   (24.04.2012 в 11:31)
 

(путь к директории скорее всего потребуется выставлять явно).
Да, это помогло, спасибо! ща опробую свою затею

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования