2017-08-10 1 views
0

Cela pourrait être une question très noobish et je suis sûr que quelqu'un a déjà posé cette question mais je n'ai rien trouvé. Donc mon problème est assez simple. Dans mon fichier php je fonction qui enregistre l'adresse IP du visiteur avec horodatage dans le fichier:PHP aligner le texte verticalement avec des tabulateurs

$ip=$_SERVER['REMOTE_ADDR']; 
$timestamp=date("\td.m.Y H:i:s"); 
$fp = fopen('log', 'a'); 
fwrite($fp, $ip." ".$timestamp."\n"); 
fclose($fp); 

J'utilise \ t pour mettre tabulator entre IP et l'horodatage, mais les adresses IP sont différentes longueur il fait ceci:

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 

Comment puis-je aligner les horodatages verticalement? Je vous remercie.

Répondre

1

Vous pouvez utiliser sprintf() pour pad avec des espaces et aligner les valeurs:

$line = sprintf("%-20s %20s\n", $ip, $timestamp); 
code

ci-dessus renvoie une chaîne avec deux champs de 20 caractères, où le premier champ est aligné à gauche (notez le signe moins).

vous pouvez également utiliser la fonction str_pad() (par défaut, il pads une chaîne avec des espaces de droite):

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