[RESOLU] séparé heure date ip

CBO
Petit nouveau ! | 8 Messages

20 mars 2022, 10:56

Bonjour a tous
Nouveau sur le site et connaissance limitée en PHP
je rencontre un problème sur une fonction php pour la récupération de l'adresse ip suite a la visite sur une page de mon site .
le php est le suivant et a la lecture j'ai dans mon fichier txt : dimanche 20 mars 2022 10:19:0520.213.232.158
et j'aimerai obtenir
dimanche 20 mars 2022 10:19:05 20.213.232.158
en un mot avoir un espace entre les secondes et l'adresse IP
Pouvez vous m'aider . Merci d'avance
$filename = 'index-ip.txt';

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$somecontent=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$somecontent=$_SERVER['REMOTE_ADDR']."\n";
$date=$_SERVER['REQUEST_TIME']."\n";
$date1 = date('Y-m-d 		H:i:s', $date +7800); // Date du jour
setlocale(LC_TIME, "fr_FR")."\n";
//echo "Previsions pour le ".strftime("%A %d %B %G", strtotime($date1))." ";
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
//echo $date2;
if (fwrite($handle,strftime("%A %d %B %G %H:%M:%S", strtotime($date1)). $somecontent."\r\n") === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

21 mars 2022, 12:55

Bonjour,

Qu'as-tu essayé ?
Il faut faire une concaténation d'un caractère espace (entre guillemets) au niveau de ton fwrite()
http://www.lephpfacile.com/cours/5-conc ... ux-chaines
https://www.php.net/manual/fr/language. ... string.php
Quand tout le reste a échoué, lisez le mode d'emploi...

CBO
Petit nouveau ! | 8 Messages

22 mars 2022, 12:43

Bonjour Arthur
Merci pour ton message . J' avais fait des essais de rajouter "\n" mais sans doute pas au bon endroit .
Je viens de modifier sur la ligne
if (fwrite($handle,strftime("%A %d %B %G %H:%M:%S", strtotime($date1)). $somecontent."\r\n") === FALSE) {
mais cela me plante la page et le php.
As tu une idée pour séparer ou mettre "\n" pour avoir un espace entre les secondes et l'adresse IP
J'ai actuellement mardi 22 mars 2022 12:06:5954.36.148.103 et j'aimerai un espace entre le 59 et le 54.
Merci pour ton aide et si cela est possible ??
Cordialement
claude

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 mars 2022, 14:39

"\n" c'est pour un retour à la ligne.
" " pour un espace
Quand tout le reste a échoué, lisez le mode d'emploi...

CBO
Petit nouveau ! | 8 Messages

22 mars 2022, 15:31

Je viens de faire la modif qui donne j'ai mis des espaces de partout pour voir l'incidence mais rien !!!!!!!!!
if (fwrite($handle,strftime("%A."" %d ."" %B ."" %G ."" %H."":%M."":%S..""""", strtotime($date1)). $somecontent."".""."\r.""\n.""") === FALSE) {
et le résultat est identique
mardi 22 mars 2022 15:36:3777.141.21.159 mais toujours aucun espace entre le 37 (seconde) et debut adresse IP 77
une idée ?????

Eléphanteau du PHP | 44 Messages

22 mars 2022, 17:40

bonjour, normal que ton résultat est identique, tu as mis les "" sans aucun espace dedans ^^
Essaie un truc comme ça:
if (fwrite($handle,strftime("%A."" %d ."" %B ."" %G ."" %H."":%M."":%S." ", strtotime($date1)) . " " . $somecontent . "\r\n") === FALSE) {
L'illogisme n'est que la logique des autres!

CBO
Petit nouveau ! | 8 Messages

24 mars 2022, 06:51

Bonjour
avec ou sans aucun espace dedans cela ne change rien . Pas simple et pas tres logique le php !!!!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 mars 2022, 08:42

Le code que t'a fourni GuillaumeLM fonctionne, donc il faut que tu révises les bases du PHP.
Quand tout le reste a échoué, lisez le mode d'emploi...

CBO
Petit nouveau ! | 8 Messages

24 mars 2022, 12:43

Bonjour ARTHUR
Pour toi tu comment ecrire cette ligne . J'ai révisé mais aucun amélioration . Je suis vraiment nul en php
if (fwrite($handle,strftime("%A."" %d ."" %B ."" %G ."" %H."":%M."":%S." ", strtotime($date1)) . " " . $somecontent . "\r\n") === FALSE) {
TON CONSEIL ??
Merci a vous deux du temps passé sur mon probleme .
Cordialement
CBO CLAUDE

Eléphanteau du PHP | 44 Messages

24 mars 2022, 16:59

Bonjour,
euhhhh si ton espace ne passe pas.... tente avec un caractère comme - ou _ de façon à voir (lisibilité, bien sûr ^^) s'il est bien pris en compte, mais ça reste curieux, la concaténation devrait pourtant se faire !?
L'illogisme n'est que la logique des autres!

CBO
Petit nouveau ! | 8 Messages

24 mars 2022, 22:01

Ne marche toujours pas . J' abandonne .
Merci pour votre aide
Cordialement

Mammouth du PHP | 2703 Messages

24 mars 2022, 22:30

pour rajouter un espace après les secondes, une solution simple :
"%A %d %B %G %H:%M:%S "

CBO
Petit nouveau ! | 8 Messages

25 mars 2022, 02:17

bonjour
Merci pour votre solution mais j'ai depuis le début ("%A %d %B %G %H:%M:%S",
et vous écrivez comme solution simple ("%A %d %B %G %H:%M:%S", donc exactement la même chose !!!!!!!!!!!!!!!!!

CBO
Petit nouveau ! | 8 Messages

25 mars 2022, 02:35

je viens de trouver et pour info il faut écrire
("%A %d %B %G %H:%M:%S %n",
Le %n est le fonction retour a la ligne
https://www.ibm.com/docs/fr/workload-au ... e-strftime
MERCI

Mammouth du PHP | 2703 Messages

25 mars 2022, 08:11

"%A %d %B %G %H:%M:%S "
"%A %d %B %G %H:%M:%S"

ces 2 codes ne sont pas la même chose.