Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите логировать работу скрипта, Скриб загрузки файлов счетчика на сервер по расписанию
Stas  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Есть скрипт который грузит на сайт скрипты счетчиков по расписанию.
Сделано это для того чтоб сократить ответ сервера.
Вот сам скрипт
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
}
// Указываем URL, затем папку от корня сайта и имя файла с расширением.
// Проверьте чтобы на папке были права на запись 777/755

// Для скриптов без расширения
//downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath("./media/js") . '/NuT1gBLsC6');
// Метрика

downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath("/media/js").'/watch.js');
// Google Analytics
downloadJs('https://google-analytics.com/analytics.js', realpath("/media/js").'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath("/media/js").'/ga.js');
//mail.ru
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath("/media/js").'/code.js');
?>

Необходимо логировать в отдельный лог выполнения скрипта с датой и размером файлов которые заменились после выполнения.
Подскажите как это сделать.
Зарание блогодарен за ответ
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26055
Пользователь №: 21350
На форуме: 6 лет, 10 месяцев, 9 дней
Карма: 727

Не курю:
1 год, 3 месяца, 25 дней


function downloadJs($file_url, $save_to)
{

$content = file_get_contents($file_url);

if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$log = $date.'|'.$file.'|'.$size.PHP_EOL;

file_put_contents(__DIR__.'/loguploads.txt', $log, FILE_APPEND);
}
}


логи вида

04/08/2016 12:55:21|watch.js|69733
04/08/2016 12:55:50|watch.js|69733
04/08/2016 12:55:51|analytics.js|27580


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stas  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Спасибо за помошь.
Полный код у меня получился такой
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
// Логируем загрузку файлов на сервер.
if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$log = $date.'|'.$file.'|'.$size.PHP_EOL;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
} }
// Указываем URL, затем папку от корня сайта и имя файла с расширением.
// Проверьте чтобы на папке были права на запись 777/755

// Для скриптов без расширения
//downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath("./media/js") . '/NuT1gBLsC6');
// Метрика

downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/watch.js');
// Google Analytics
downloadJs('https://google-analytics.com/analytics.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/ga.js');
//mail.ru
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/code.js');
?>

А для красоты файла loguploads.txt как вставить пустую строку после записи
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1394
Пользователь №: 28976
На форуме: 5 лет, 5 месяцев, 24 дня
Карма: 78




$log = $date.'|'.$file.'|'.$size.PHP_EOL;
$log .= "\r\n";
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stas  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Таким способом он ставит пустую строку после каждой строки


04/08/2016 15:33:48|watch.js|69733

04/08/2016 15:33:49|analytics.js|27580

04/08/2016 15:33:49|ga.js|43082

04/08/2016 15:33:50|code.js|8803

а я спрашивал про
04/08/2016 15:33:48|watch.js|69733
04/08/2016 15:33:49|analytics.js|27580
04/08/2016 15:33:49|ga.js|43082
04/08/2016 15:33:50|code.js|8803

04/08/2016 15:33:48|watch.js|69733
04/08/2016 15:33:49|analytics.js|27580
04/08/2016 15:33:49|ga.js|43082
04/08/2016 15:33:50|code.js|8803

перенос строки уже есть .PHP_EOL;
теперь надо перенос песле записи всего блока
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1394
Пользователь №: 28976
На форуме: 5 лет, 5 месяцев, 24 дня
Карма: 78




ну допиши добавление записи в конце файла
....
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/code.js');
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', PHP_EOL, FILE_APPEND);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 6 месяцев, 14 дней
Карма: 30




1. вызывать ф-ю записи пустой строки вручную после последнего скрипта
2. повесить ф-ю записи пустой строки на register_shutdown_function.
3. создать класс логгера и повесить саму запись (и открытие файла) на __destruct, добавив туда вывод доп. пустой строки.
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stas  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Вариант с добовлением в конец файла не работает.
Если просто строка
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);

то ошибка если
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
}

}

Скрипт не срабатывает но и ошибок нет.

jetistyum
Немогли бы вы на примере показать

PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 6 месяцев, 14 дней
Карма: 30




Передай перенос строки "\n" в качестве второго аргумента
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26055
Пользователь №: 21350
На форуме: 6 лет, 10 месяцев, 9 дней
Карма: 727

Не курю:
1 год, 3 месяца, 25 дней


Цитата
Передай перенос строки "\n" в качестве второго аргумента

перенос уже есть в виде PHP_EOL (END OF LINE) - универсальная константа

вот же

$log = $date.'|'.$file.'|'.$size.PHP_EOL;


когда строка для лога собирается - сразу перенос в ней есть.

само логирование я написал в теле копирования файла - после того как файл успешно загружен - происходит логика логирования


Цитата
Передай перенос строки "\n" в качестве второго аргумента

перенос уже есть в виде PHP_EOL (END OF LINE) - универсальная константа

вот же

$log = $date.'|'.$file.'|'.$size.PHP_EOL;


когда строка для лога собирается - сразу перенос в ней есть.

само логирование я написал в теле копирования файла - после того как файл успешно загружен - происходит логика логирования

для того чтобы сделать перенос строки для блока - проще добавить 3й аргумент в функцию

добавь 3й аргумент - для определения конца блока

function downloadJs($file_url, $save_to, $end_block = false){

file_put_contents($save_to, $content);
// Логируем загрузку файлов на сервер.
if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$eol = !$end_block ? PHP_EOL : PHP_EOL.PHP_EOL;
$log = $date.'|'.$file.'|'.$size.$eol;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
}

}


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26055
Пользователь №: 21350
На форуме: 6 лет, 10 месяцев, 9 дней
Карма: 727

Не курю:
1 год, 3 месяца, 25 дней


т.е.
function downloadJs($file_url, $save_to, $end_block = false){

file_put_contents($save_to, $content);
// Логируем загрузку файлов на сервер.
if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$eol = !$end_block ? PHP_EOL : PHP_EOL.PHP_EOL;
$log = $date.'|'.$file.'|'.$size.$eol;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
}

}


downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/watch.js');
downloadJs('https://google-analytics.com/analytics.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/ga.js');
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/code.js', true);

внимание на 4й запуск функции


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stas  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Все спасибо большое Игорь все работает
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to, $end_block = false)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$eol = !$end_block ? PHP_EOL : PHP_EOL.PHP_EOL;
$log = $date.'|'.$file.'|'.$size.$eol;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
}
}

// Указываем URL, затем папку от корня сайта и имя файла с расширением.
// Проверьте чтобы на папке были права на запись 777/755

// Для скриптов без расширения
// downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath("./media/js") . '/NuT1gBLsC6');
// Метрика

downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/watch.js');
// Google Analytics
downloadJs('https://google-analytics.com/analytics.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/ga.js');
//mail.ru
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/code.js', true);

?>
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26055
Пользователь №: 21350
На форуме: 6 лет, 10 месяцев, 9 дней
Карма: 727

Не курю:
1 год, 3 месяца, 25 дней


да нормуль.
правильнее как те бе выше сказали - логику разнести в разные функции (классы уж трогать не будем)

1я функция занимается сохранением
2я функция занимается логированием


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stas  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 289
Пользователь №: 26541
На форуме: 5 лет, 10 месяцев, 26 дней
Карма: -2




Заметил такую вещь что если перейти к скрипту то при первом открытии он не запускается а просто открывает пустую страницу и записи в лог не идет.
Если нажимаю F5 то скрипт срабатывает и записывает лог.
Подскажите что можно предпринять
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8832
Пользователь №: 26630
На форуме: 5 лет, 10 месяцев, 21 день
Карма: 598




Цитата (Stas @ 4.08.2016 - 09:49)
Есть скрипт который грузит на сайт скрипты счетчиков по расписанию.
Сделано это для того чтоб сократить ответ сервера.

какая то странная затея, с чего бы это ответ сервера должен стать быстрее? Твой хостинг работает быстрее серверов гугла, яндекса и прочих монстров?
Цитата (Stas @ 5.08.2016 - 07:05)
Заметил такую вещь что если перейти к скрипту то при первом открытии он не запускается а просто открывает пустую страницу и записи в лог не идет.
Если нажимаю F5 то скрипт срабатывает и записывает лог.

Цитата (Stas @ 4.08.2016 - 14:12)
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.

автор скрипта подразумевал, что он будет запускаться кроном, а не браузером wink.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса