Saut de ligne, y veut pas sauter !

Eléphant du PHP | 55 Messages

14 sept. 2011, 13:38

Bonjour,

J'ai un code "pur" php pour tester, mais il ne veut pas sauter de ligne avec :
\n
Je lance avec WampServer : licalHost...
Voici tout mon code, c'est en fin :
<?php // CODE TEST EN PHP PUR     _compteur.php
/*--------------------------- */
header("Pragma: no-cache");
$compteur=1;
/*
$page=basename($_SERVER['HTTP_REFERER']);
$position = strpos($page, "."); // de 0
$lenom=substr($page, 0, $position);
*/

$lenom="jo2"; // rajout pour php
$nomfic=$lenom."_ctr_pt.txt";
$nomficip=$lenom."_ctr_ip.txt";
$aujourdhui = date("d/m/Y");

/*$ipclient=$_SERVER['REMOTE_ADDR'];*/

$ipclient="1234.5678.9101.1213"; // rajout pour php
$trace="";


if (file_exists($nomfic)) // fichier compteur
  {
$trace=$trace."fichier compteur existe=OUI  ||  "; //<<---
  $dateficip = date("d/m/Y", filemtime($nomficip));
  if ($aujourdhui <> $dateficip)
    {
$trace=$trace."aujourdhui<>dateficip  ||  "; //<<---
    $fileip=@fopen($nomficip, "w"); // recr�e fic ip
    fclose($fileip);
    } 

  $fileip=@fopen($nomficip, "r");  // cherche si IP existante 
  while (!feof($fileip))
    {
    if ($ipclient == fgets($fileip))
      {
      fclose($fileip); // ip d�j� �crite
      $file=@fopen($nomfic, "r+"); 
      fscanf($file, "%d", $compteur);
      fclose($file);
$trace=$trace."IP EXISTE + lit_compteur ||  "; //<<---
      goto fin;
      }
    }
  fclose($fileip);

$trace=$trace."IP N'EXISTE PAS  ||  "; //<<---
  $fileip=@fopen($nomficip, "r+");
    fputs($fileip, "\n"); 
    fputs($fileip, $ipclient);
  fclose($fileip);

  $file=@fopen($nomfic, "r+"); 
   fscanf($file, "%d", $compteur);
   $compteur++;
   rewind($file);
   fputs($file, $compteur);
  fclose($file);
$trace=$trace."a �crit IP ET Ctr+1  ||  "; //<<---
  }

else 

  {
$trace=$trace."compteur existe=NON  ||  "; //<<---
  $fileip=@fopen($nomficip, "w");
   fputs($fileip, $ipclient);
  fclose($fileip);
  $file=@fopen($nomfic, "w");
   fputs($file, $compteur);
  fclose($file);
  }
fin:
$trace=$trace."FIN  ||  "; //<<---

echo $compteur." \n\n";
echo "\n\n";
// vérification
/* echo "position = ".$position."\n"; pour php */
echo "nom html = ".$lenom."\n";
echo "nom php = ".$nomfic."\n";
echo "ip client = ".$ipclient."\n";
echo "nom fic ip = ".$nomficip."\n";
echo "aujourd\'hui = ".$aujourdhui."\n";
echo "date fic ip = ".$dateficip."\n";
echo $trace."\n"; 
?>
.
Cordialement.

Joe.
.

Mammouth du PHP | 19672 Messages

14 sept. 2011, 13:47

Normal, tu envoies vers la sortie standard un metacaractère de saut de ligne, mais le navigateur ne les interprète pas et attend à la place une balise HTML qui signifie la même chose.

Si tu regardes la source de la page générée, tu vas bien voir que les retours de lignes sont correctement en place. Mais l'absence de balise <br /> dit au navigateur de continuer à afficher le contenu à la suite. Il conviendrait donc d'écrire plutôt :
echo $mavariable ."<br />\n";
Et là l'affichage sera conforme à tes attentes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 55 Messages

14 sept. 2011, 14:18

Bonjour,

Oh merci, chat marche, comme disent les chats (ceux qui parlent) !

J'ai mis au plus court, ce qui laisse à penser que je vais me faire fustiger pour hérésie ?

"<br>"

Mais... mais, il sert à quoi le \n alors...
Si le php qui s'affiche dans du html (ici au moins) ne traduit pas \n par <rc> à quoi sert-il de lui mettre \n, ah ?
.
Cordialement.

Joe.
.

Mammouth du PHP | 19672 Messages

14 sept. 2011, 14:26

C'est pratique pour lire les sources générées, sinon ton code HTML se tiendra sur une seule ligne et si tu as des bugs d'affichage, tu vas ramer pas mal pour débusquer les erreurs, donc les deux sont utiles/indispensables.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: