Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2013, 11:31   #1
Emiresk
 
Регистрация: 09.11.2013
Сообщений: 5
По умолчанию Проблема с доступом к файлу

Всем привет. Я не гуру PHP , но кое что получается. Но сталкнулся одной проблемой. Есть в интернете игрушка браузерная. Администрация сделала API для неё. Суть проблемы:

Есть API в которой записываются все события в формате id|num|name|.... Моя задача их вывести в красивом формате с картиночками и т.п. Но возникает другая проблема, а именно с доступом к файлу. При парсинге ошибок не возникает, но как такого файла на моём сервере не создается, а появляется он через время и не понятно почему...



С выборкой и сортировкой проблем не возникает. Код вот

PHP код:
$tmp = ("http://****.ru/services/events/temp_text/".$date_today.".txt");
        if (
file_extists($tmp)) {
                    
unlink ($tmp); } 

  
$fbak = @file("http://gapi.***.ru/events/".$date_today.".txt");
  
$result iconv('Windows-1251''UTF-8'$fbak);
  
$filename fopen$tmp,'w+');
  
fputs ($filename$result);
  
fclose($filename);

Доступ на GAPI есть всегда, файл всегда существует, но я не могу понять почему он не пишется на мой сервер. Доступ на запись есть...
Emiresk вне форума Ответить с цитированием
Старый 09.11.2013, 19:16   #2
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Код:
$file_name = "http://****.ru/services/events/temp_text/".$date_today.".txt";
if(file_exists($file_name)){
   unlink($file_name);
}

$file_data = file_get_contents("http://gapi.***.ru/events/".$date_today.".txt");
$file_data = incov('WINDOWS-1251','UTF-8',$file_data);
file_put_contents($file_name,$file_data);
попробуйте так!
CodeNOT вне форума Ответить с цитированием
Старый 09.11.2013, 19:50   #3
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

Грани реальности, хорошая была игрушка ) Удивительно, что еще кто-то под нее сервисы пишет.

А зачем тебе сохранять файл? Работай напрямую с API:
PHP код:
$file_data file("http://gapi.ereality.ru/events/".$date_today.".txt"); // построчно считали в массив
foreach($file_data as $str){ 
   
$str iconv('windows-1251''UTF-8'$str);
   
$event explode("|"$str); // разбили каждую строку на элементы (дата, ник, клан и т.д.)

   
var_dump($event); // все данные аккуратно уложены в массив, 
                            // обрабатываем как нужно и сразу выдаем пользователю 
                            // с картиночками, рюшечками и прочими красившествами

PS: если файл сохраняется "через время", то проблема скорее всего в кешировании браузера или FTP-клиента - ты не сразу видишь появление файла, смотри по времени создания. Если не сохраняется вообще, значит либо ему не нравится url в качестве пути, либо не хватает прав на запись.

Последний раз редактировалось Mortimoro; 09.11.2013 в 19:55.
Mortimoro вне форума Ответить с цитированием
Старый 10.11.2013, 13:12   #4
Emiresk
 
Регистрация: 09.11.2013
Сообщений: 5
По умолчанию

Цитата:
PS: если файл сохраняется "через время", то проблема скорее всего в кешировании браузера или FTP-клиента - ты не сразу видишь появление файла, смотри по времени создания. Если не сохраняется вообще, значит либо ему не нравится url в качестве пути, либо не хватает прав на запись.
Провбовал и через МЦ и через Зиллу, такое впечатление что проблема именно с FTPшкой. Создает когда угодно и куда ему удобно, меняешь пути - сразу работает. К примеру в корень сайта работает нормально, но зачем мне парсинг в корне оставлять.

Спасибо за советы опробую и отпишусь.

А напрямую, не охота юзать так как для дальнейшего парсинга чтобы не создавть нагрузки на Гапи буду считывать данные уже непосредственно со своего сервера.
Emiresk вне форума Ответить с цитированием
Старый 10.11.2013, 14:15   #5
Emiresk
 
Регистрация: 09.11.2013
Сообщений: 5
По умолчанию

Спасибо! Заработало! Но проблема пока в том же. Динамически работает. Осталась задача сохранять исходный парсинг в определеный каталог. А хотя можно уже vardump загонять в файл чтобы потом просто фричем извлекать нужную инфу
Emiresk вне форума Ответить с цитированием
Старый 11.11.2013, 05:29   #6
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

API граней построено на текстовых файлах, а не динамическом контенте, потому нагрузку весомую создать тебе вряд ли удастся. В своем скрипте ты один раз считываешь актуальный файл в массив и работаешь уже с ним. Нет никакого смысла в том, чтобы считывать файл, сохранять у себя и считывать повторно для непосредственной обработки.
Mortimoro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с доступом Blind Guard Общие вопросы C/C++ 2 05.05.2013 18:01
Проблема с сетевым доступом в Win98 vpm Windows 0 01.12.2012 00:54
Проблема с доступом к файлу skyspirit Общие вопросы .NET 1 05.05.2010 15:54
Проблема с доступом в сети Ronni10 Операционные системы общие вопросы 6 07.10.2008 21:34
Проблема с доступом к папкам Romanus Свободное общение 0 07.10.2007 18:52