Это может быть очень дурацкий вопрос, и я уверен, что кто-то уже задавал это, но я ничего не нашел. Так что моя проблема довольно проста. В моем php-файле у меня есть функция, которая сохраняет IP-адрес посетителя вместе с меткой времени в файл:
$ip=$_SERVER['REMOTE_ADDR'];
$timestamp=date("\td.m.Y H:i:s");
$fp = fopen('log', 'a');
fwrite($fp, $ip." ".$timestamp."\n");
fclose($fp);
Я использую \ t, чтобы поместить табулятор между IP и timestamp, но IP-адреса имеют различную длину, поэтому он делает это:
86.122.146.130 05.08.2017 09:59:25
188.175.16.157 05.08.2017 13:36:42
60.191.38.77 05.08.2017 17:37:44
106.74.48.171 05.08.2017 21:38:57
185.110.132.239 06.08.2017 02:08:04
Как я могу выровнять метки времени по вертикали? Спасибо.
Ты можешь использовать sprintf()
заполнить пробелами и выровнять значения:
$line = sprintf("%-20s %20s\n", $ip, $timestamp);
Приведенный выше код возвращает строку с двумя полями длиной 20 символов, где первое поле выровнено по левому краю (обратите внимание на знак минус).
Также вы можете использовать str_pad()
функция (по умолчанию она дополняет строку пробелами справа):
$line = str_pad($ip, 20) . str_pad($timestamp, 20) . "\n";
Других решений пока нет …