Page 1 sur 1

nombre de caracteres dans un fichier

Posté : 14 févr. 2006, 12:47
par HD
salut
je souhaite connaitre le nombre de caracteres que contient un fichier multi lignes genre :
<a href='../lien.php'>01/01/06 : premiere nouvelle</a>&nbsp;-&nbsp;
<a href='../lien.php'>02/01/06 : deuxieme news</a>&nbsp;-&nbsp;
<a href='../lien.php'>03/01/06 : Troisieme nouvelle</a>&nbsp;-&nbsp;
<a href='../lien.php'>04/01/06 : Quatrieme nouvelle</a>&nbsp;-&nbsp;
<a href='../lien.php'>05/01/06 : cinquieme news</a>&nbsp;-&nbsp;
<a href='../lien.php'>06/01/06 : sixieme nouvelle</a>&nbsp;-&nbsp;
j'ai trouvé des fonctions pour recuperer le nombre de lignes mais ce n'est pas ce que veux...
merci !

Posté : 14 févr. 2006, 13:04
par Cyrano
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>&nbsp;-&nbsp;
<a href='../lien.php'>02/01/06 : deuxieme news</a>&nbsp;-&nbsp;
<a href='../lien.php'>03/01/06 : Troisieme nouvelle</a>&nbsp;-&nbsp;
<a href='../lien.php'>04/01/06 : Quatrieme nouvelle</a>&nbsp;-&nbsp;
<a href='../lien.php'>05/01/06 : cinquieme news</a>&nbsp;-&nbsp;
<a href='../lien.php'>06/01/06 : sixieme nouvelle</a>&nbsp;-&nbsp;
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.

Posté : 14 févr. 2006, 13:08
par HD
merci cyrano
on peut toujours compter sur toi :pouce: