#php #wordpress #logging #bots #code-snippets
#php #wordpress #ведение журнала #боты #фрагменты кода
Вопрос:
честно говоря, я не очень опытный программист. Но я хотел бы иметь какой-нибудь простой регистратор ботов для WordPress. Все, что мне нужно, это просто записать имя ‘user-agent’ в какой-нибудь базовый текстовый файл.
Наличие даты / времени — это просто бонус.
Кто-нибудь знает какой-нибудь простой php-код / фрагмент, который я могу вставить в header.php или functions.php пожалуйста?
Спасибо. С наилучшими пожеланиями,
Милан
ОБНОВЛЕНИЕ: Итак, решение Кристофера Айвза работает отлично, спасибо.
И если я хочу указать время и дату посещения пользовательского агента, что я должен вставить в:
add_action('wp', function(){
file_put_contents(__DIR__.'/useragents.log', $_SERVER['HTTP_USER_AGENT']."n", FILE_APPEND);
});
Как это должно выглядеть? Я что-то не так делаю с символами , . ; Я в замешательстве : (
Ответ №1:
Вы можете использовать простую функцию, чтобы записать что-то в файл:
function simpleLogger ($logMsg){
file_put_contents('./log_'.date("j.n.Y").'.log', $logMsg, FILE_APPEND);
}
Ответ №2:
В вашем плагине WordPress вам нужно подключаться к каждому запросу страницы и записывать его в файл:
add_action('wp', function(){
file_put_contents(__DIR__.'/useragents.log', $_SERVER['HTTP_USER_AGENT']."n", FILE_APPEND);
});
Однако имейте в виду, что многие среды PHP не имеют доступа на запись к файлам по соображениям безопасности, поэтому вам понадобится chmod g w
этот файл, чтобы он был доступен для записи с помощью PHP. Также имейте в виду, что эта информация, вероятно, уже существует в /var/log/apache/*access.log
, а также во многих существующих плагинах WordPress, которые сохранят эту информацию в базе данных и предоставят вам базовые функции отчетности, такие как статистика WP
Комментарии:
1. Спасибо! Выглядит интересно. Я знаю, что файл должен быть 775 или 777, если не будут добавлены дополнительные правила (я думаю :)) И теперь я установил SSH-соединение со своим VPS, но по некоторым причинам я не могу видеть ни одного существующего журнала, который должен быть виден на моей стороне. Например: у меня есть изображение / disk_1/log / или / disk_1/home / web /logs /, и оно пустое :-/
Ответ №3:
Я разобрался 🙂
add_action('wp',function () {
$timestamp = date('d/m/Y h:i:s ');
file_put_contents(__DIR__ .'/useragents.log', $timestamp.$_SERVER['HTTP_USER_AGENT']."n",FILE_APPEND); }
);