PHP将文本与制表器垂直对齐

PHP将文本与制表器垂直对齐,php,alignment,Php,Alignment,这可能是一个非常愚蠢的问题,我相信已经有人问过了,但我什么也没发现。所以我的问题很简单。在我的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和时间戳之间,但IP的长度

这可能是一个非常愚蠢的问题,我相信已经有人问过了,但我什么也没发现。所以我的问题很简单。在我的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和时间戳之间,但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
如何垂直对齐时间戳?谢谢。

您可以使用填充空格和对齐值:

$line = sprintf("%-20s %20s\n", $ip, $timestamp);
上面的代码返回一个字符串,其中两个字段长度为20个字符,其中第一个字段左对齐,请注意减号

您也可以使用函数,默认情况下,它会在字符串右侧填充空格:

$line = str_pad($ip, 20) . str_pad($timestamp, 20) . "\n";