Mammouth du PHP |
19672 Messages
14 févr. 2006, 13:04
Il faut utiliser fread() et faire un explode() sur les retours de chariot. Proposition :
fichier liens.php
<a href='../lien.php'>01/01/06 : premiere nouvelle</a> -
<a href='../lien.php'>02/01/06 : deuxieme news</a> -
<a href='../lien.php'>03/01/06 : Troisieme nouvelle</a> -
<a href='../lien.php'>04/01/06 : Quatrieme nouvelle</a> -
<a href='../lien.php'>05/01/06 : cinquieme news</a> -
<a href='../lien.php'>06/01/06 : sixieme nouvelle</a> -
fichier compte_caracteres.php
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Compter les caractères d'une ligne dans un fichier</title>
</head>
<body>
<?php
// Lit un fichier, et le place dans une chaîne
$fichier = "./liens.php";
$ressource = fopen ($fichier, "r");
$contenu = fread ($ressource, filesize ($fichier));
fclose ($ressource);
$tableau = explode("\r\n", $contenu);
$longueurs = array();
foreach($tableau as $ligne)
{
$longueur[] = strlen($ligne);
}
$nb = count($tableau);
for($i = 0; $i < $nb; $i++)
{
?>
<p>La ligne <?php echo($i + 1); ?> comporte <?php echo($longueur[$i]); ?> caractères : <code><?php echo($tableau[$i]); ?></code></p>
<?php
}
?>
</body>
</html>
Résultat de l'exécution :
La ligne 1 comporte 67 caractères : 01/01/06 : premiere nouvelle -
La ligne 2 comporte 63 caractères : 02/01/06 : deuxieme news -
La ligne 3 comporte 68 caractères : 03/01/06 : Troisieme nouvelle -
La ligne 4 comporte 68 caractères : 04/01/06 : Quatrieme nouvelle -
La ligne 5 comporte 64 caractères : 05/01/06 : cinquieme news -
La ligne 6 comporte 66 caractères : 06/01/06 : sixieme nouvelle -
Note que les balises du fichier étant interprétées, les lignes sont affichées en liens clicables dans les balises <a> bien entendu.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 