Перейти к содержимому
Русский язык для Invision Community 5

Поиск файла по примерному названию php

Здравствуйте. Я реализовал функционал просмотра лога, хочу добавить к просмотру определенного лога второй файл из другой папки, это тоже лог, но он создается чуть позже и соответственно другое название.

 

bot25_11_05_2019_20:22:51.log - основной лог.

bot25_11_05_2019_20:22:52.log - вторичный лог.

 

public function viewFile()
{
	if ( \IPS\NO_WRITES )
	{
		\IPS\Output::i()->error( 'no_writes', '1C324/4', 403, '' );
	}

	$file = static::logDir() . \IPS\Request::i()->file;
	$file_gcb = static::logDirGCB() . \IPS\Request::i()->file;


	if ( !is_file( $file ) )
	{
		\IPS\Output::i()->error( 'node_error', '2C324/5', 404, '' );
	}

	\IPS\Output::i()->sidebar['actions']['delete'] = array(
		'icon'	=> 'times-circle',
		'link'	=> \IPS\Http\Url::internal( 'app=wc3&module=bots&controller=logs&do=delete' )->setQueryString( 'file', \IPS\Request::i()->file ),
		'title'	=> 'delete',
		'data'	=> array( 'confirm' => '' )
	);

	$log = file($file);
	$log = \array_slice( $log, -400, 400, TRUE );

	$gcb_log = file($file_gcb);
	$gcb_log = \array_slice( $file_gcb, -400, 400, TRUE );

	\IPS\Output::i()->title	 = basename( $file );
	\IPS\Output::i()->breadcrumb[] = array( \IPS\Http\Url::internal( "app=wc3&module=bots&controller=logs" ), \IPS\Member::loggedIn()->language()->addToStack('menu__wc3_bots_logs') );
	\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'logs' )->view( implode("", $log), implode("", $gcb_log) );
}

 

Второстепенный лог, в котором нужно реализовать что-то вроде функции поиска по названию файла основного лога.

 

$file_gcb = static::logDir() . \IPS\Request::i()->file;

 

Так вот оно грузит, если названия одинаковые: http://prntscr.com/nnbw7b

Изменено пользователем TemKa_SD

Рекомендованные сообщения

Ну так у вас запуск в разных процессах php происходит, так да - не выйдет. Я думал это все происходит под одним запросом.

У вас тут multiple redirect, как вариант можете передавать время между сессиями через $data (get параметр). Либо да, через бд.

  • Автор

Спасибо, сделаю через бд, всё равно там как минимум PID выбирается и записывается, нагрузки лишней не будет.

  • Автор

http://prntscr.com/nnnra0 int использовать?

 

Здесь меня интересует грамотность реализации этого поля, всё же есть timestimp, лучше же его?

Изменено пользователем TemKa_SD

Да. У вас поле datetime а вы заносите timestamp.

  • Автор

Да, я понял. Скажите, какой лучше формат для этого использовать? timestimp или datetime?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.