begin process at 2010 02 10 05:50:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > STATISTIQUES DE VOTRE PROJET (NOMBRE DE DOSSIERS, FICHIERS, LIGNES...)

STATISTIQUES DE VOTRE PROJET (NOMBRE DE DOSSIERS, FICHIERS, LIGNES...)


 Information sur la source

Note :
7 / 10 - par 12 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Initié Date de création :05/01/2005 Date de mise à jour :05/01/2005 18:14:19 Vu / téléchargé :4 046 / 275

Auteur : GRenard

Ecrire un message privé
Site perso
Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Script permettant de compter le nombre de ligne de votre site.

*** Comment ça marche ?
Lors du chargement du fichier, vous allez voir un premier tableau. Dans celui-ci vous devez choisir entre "Include" et "Exclude". Ceci incluera ou excluera les extensions sélectionnées ci-dessous.
Les extensions présentent sont celles préalablement scannées.
Vous verrez ensuite dans le deuxième tableau les détails du dossier que vous avez choisis.
Vous verrez les statistiques suivantes :
- Nombre de dossiers
- Nombre de fichiers inclus et exclus
- Nombre de lignes de code, vide, de commentaire, total des 3
- Taille totale des fichiers inclus


*** Ce que vous devez modifier
Simplement dans le fichier la variable
$directory_start qui pointe vers le dossier ou commencer le scan

Source

  • <?php
  • //////////////////////////////////////////////////////////////////////
  • // stats.php
  • //--------------------------------------------------------------------
  • //
  • // Statistics for your webserver
  • //
  • //--------------------------------------------------------------------
  • // Revision History
  • // V1.00 1 jan 2004 Jean-Sebastien Goupil
  • //--------------------------------------------------------------------
  • // Copyright (C) Jean-Sebastien Goupil
  • // http://other.lookstrike.com/
  • //--------------------------------------------------------------------
  • //////////////////////////////////////////////////////////////////////
  • ######################################################################
  • ### MODIFY
  • ######################################################################
  • $directory_start = $_SERVER['DOCUMENT_ROOT'];
  • ######################################################################
  • ### STOP MODIFY
  • ######################################################################
  • /////////////////////////////////////////////////////////////////
  • // Variable Declaration
  • /////////////////////////////////////////////////////////////////
  • $all_extensions = array();
  • $unite_spec = array("bytes","KB","MB","GB","TB");
  • $count_val = array(
  • 0, // Comment
  • 0, // Line
  • 0, // White Line
  • 0, // Count Dir
  • 0, // Excluded Files
  • 0, // Included Files
  • 0 // Size
  • );
  • $start_comment=false;
  • /////////////////////////////////////////////////////////////////
  • // Function Declaration
  • /////////////////////////////////////////////////////////////////
  • /**
  • * Lit toutes les extensions présentes dans $directory et les
  • * enregistre dans $all_extensions (anti-doublon)
  • *
  • * @param string $directory
  • * @param string[] $all_extensions
  • */
  • function checkextension($directory, &$all_extensions){
  • if (($handle = @opendir($directory))!==false) {
  • while (($file = readdir($handle))!==false) {
  • if((is_dir($directory.'/'.$file))&&($file != '.' && $file != '..')){
  • checkextension($directory.'/'.$file, $all_extensions);
  • }
  • elseif($file != '.' && $file != '..'){
  • $extension=explode('.',$file);
  • // Si le fichier n'a pas de point, on ne le met pas !
  • $check = ((strpos($file,'.')===false)?'':'.').$extension[count($extension)-1];
  • if(!in_array($check,$all_extensions))
  • $all_extensions[] = $check;
  • }
  • }
  • closedir($handle);
  • }
  • }
  • /**
  • * Permet d'afficher dans la bonne unitée les octets passé
  • * en paramètre.
  • *
  • * @param int $octet
  • * @return string
  • */
  • function unite($octet){
  • global $unite_spec;
  • $count=0;
  • while($octet>=1024){
  • $count++;
  • $octet/=1024;
  • }
  • return($octet.' '.$unite_spec[$count]);
  • }
  • /**
  • * Vérifie ce que contient $ligne
  • * Permet de vérifier si le commentaire est déjà commencé avec /* ($start_comment)
  • * Retourne
  • * - 0 : Commentaire
  • * - 1 : Ligne
  • * - 2 : Ligne Vide
  • *
  • * @param string $ligne
  • * @return int
  • */
  • function checkline($ligne){
  • global $start_comment;
  • $ligne = trim($ligne);
  • if((substr($ligne,0,2)=='/*')&&(substr($ligne,strlen($ligne)-2)=='*/'))return 0;
  • elseif((substr($ligne,0,2)=='/*')&&($start_comment==false)){$start_comment=true;return 0;}
  • elseif((substr($ligne,0,2)=='*/')&&($start_comment==true)){$start_comment=false;return 0;}
  • elseif((substr($ligne,strlen($ligne)-2,2)=='*/')&&($start_comment==true)){$start_comment=false;return 0;}
  • elseif(substr($ligne,0,2)=='//')return 0;
  • elseif(substr($ligne,0,1)=='#')return 0;
  • elseif($start_comment==true)return 0;
  • elseif($ligne=='')return 2;
  • else return 1;
  • }
  • /**
  • * Scan le $directory et enregistre les statistiques
  • *
  • * @param string $directory
  • */
  • function readdirectory($directory){
  • global $only_exclude,$extension_to_exclude,$extension_to_include,$count_val,$start_comment;
  • if (($handle = opendir($directory))!==false) {
  • while (($file = readdir($handle))!==false) {
  • if((is_dir($directory.'/'.$file))&&($file != '.' && $file != '..')){
  • $count_val[3]++; // Dir ++
  • readdirectory($directory.'/'.$file);
  • }
  • elseif($file != '.' && $file != '..'){
  • $extension=explode('.',$file);
  • $check = ((strpos($file,'.')===false)?'':'.').$extension[count($extension)-1];
  • if($only_exclude==true && in_array($check,$extension_to_exclude)){
  • $count_val[4]++; // Excluded File ++
  • }
  • else{
  • if($only_exclude==false && !in_array($check,$extension_to_include))
  • $count_val[4]++; // Excluded File ++
  • else{ // We don't count THIS file !
  • if(($directory.'/'.$file)!=($_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF'])){
  • $count_val[5]++; // Included File ++
  • $count_val[6]+=filesize($directory.'/'.$file); // Size
  • $fp = fopen($directory.'/'.$file,'r');
  • while(!feof($fp)){
  • $buffer = fgets($fp,255);
  • $count_val[checkline($buffer)]++;
  • }
  • // Lorsqu'un fichier est terminé, on remet le $start_comment à false
  • $start_comment=false;
  • }
  • }
  • }
  • }
  • }
  • closedir($handle);
  • }
  • }
  • /////////////////////////////////////////////////////////////////
  • // Program Starts
  • /////////////////////////////////////////////////////////////////
  • checkextension($directory_start, $all_extensions);
  • $choice = (isset($_POST['choice']))?$_POST['choice']:1;
  • echo '<html>
  • <head><title>Stats File</title></head>
  • <body bgcolor="#ffffff">';
  • echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  • <table width="550" border="1" align="center">
  • <tr><th colspan="2">Browsing Files</th></tr>
  • <tr><td>Search</td><td>
  • <input type="radio" name="choice" value="1" id="radio1"';if($choice==1)echo' checked="checked"';echo' /> <label for="radio1">Include</label><br />
  • <input type="radio" name="choice" value="2" id="radio2"';if($choice==2)echo' checked="checked"';echo' /> <label for="radio2">Exclude</label>
  • </td></tr>
  • <tr><td>Extension</td><td>';
  • for($i=0;$i<count($all_extensions);$i++){
  • echo '<input type="checkbox" name="extension['.$i.']" value="1" id="choice'.$i.'"';
  • if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
  • echo ' checked="checked"';
  • echo' /> <label for="choice'.$i.'">'.$all_extensions[$i].'</label><br />';
  • }
  • echo '</td></tr>
  • <tr><td colspan="2" align="center"><input type="submit" value="Search" /></td></tr>
  • </table>
  • </form>';
  • $extension_to_exclude = array();
  • $extension_to_include = array();
  • if($choice==2){
  • $only_exclude = true;
  • $compteur=0;
  • for($i=0;$i<count($all_extensions);$i++)
  • if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
  • $extension_to_exclude[$compteur++] = $all_extensions[$i];
  • }
  • else{
  • $only_exclude = false;
  • $compteur=0;
  • for($i=0;$i<count($all_extensions);$i++)
  • if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
  • $extension_to_include[$compteur++] = $all_extensions[$i];
  • }
  • readdirectory($directory_start);
  • $count_total = $count_val[0]+$count_val[1]+$count_val[2];
  • echo '<table width="550" border="1" align="center"><tr><td>
  • <ul>Details <b>'.$directory_start.'</b><br />';
  • if($only_exclude==true){
  • echo '<i>(The files with extension';
  • for($i=0;$i<count($extension_to_exclude);$i++)
  • echo ' '.$extension_to_exclude[$i].',';
  • if(count($extension_to_exclude)==0)
  • echo ' <u>NONE</u>';
  • echo ' has not been counted.)</i>';
  • }
  • else{
  • echo '<i>(ONLY The files with extension';
  • for($i=0;$i<count($extension_to_include);$i++)
  • echo ' '.$extension_to_include[$i].',';
  • if(count($extension_to_include)==0)
  • echo ' <u>NONE</u>';
  • echo ' has been counted.)</i>';
  • }
  • echo '<li> Folders: <b>'.$count_val[3].'</b></li>
  • <li>Files: <b>'.$count_val[5].'</b> <i>('.$count_val[4].' excluded)</i></li>
  • <li>Lines: <b>'.$count_val[1].'</b>; Empty: <b>'.$count_val[2].'</b>; Comment: <b>'.$count_val[0].'</b>; Total: <b>'.$count_total.'</b></li>
  • <li>Tot. Size: <b>';
  • echo unite($count_val[6]);
  • echo '</b></li>
  • </ul>
  • </td></tr></table>';
  • echo '<p align="center" style="font-size:10px">&copy; <a href="http://other.lookstrike.com" target="_blank">Jean-Sébastien Goupil</a></p>';
  • echo '</body>
  • </html>';
  • clearstatcache();
  • ?>
<?php
//////////////////////////////////////////////////////////////////////
// stats.php
//--------------------------------------------------------------------
//
// Statistics for your webserver
//
//--------------------------------------------------------------------
// Revision History
// V1.00	1 jan	2004	Jean-Sebastien Goupil
//--------------------------------------------------------------------
// Copyright (C) Jean-Sebastien Goupil
// http://other.lookstrike.com/
//--------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////

######################################################################
### MODIFY
######################################################################
$directory_start = $_SERVER['DOCUMENT_ROOT'];


######################################################################
### STOP MODIFY
######################################################################
/////////////////////////////////////////////////////////////////
// Variable Declaration
/////////////////////////////////////////////////////////////////
$all_extensions = array();
$unite_spec = array("bytes","KB","MB","GB","TB");
$count_val = array(
	0,		// Comment
	0,		// Line
	0,		// White Line
	0,		// Count Dir
	0,		// Excluded Files
	0,		// Included Files
	0		// Size
);
$start_comment=false;

/////////////////////////////////////////////////////////////////
// Function Declaration
/////////////////////////////////////////////////////////////////
/**
 * Lit toutes les extensions présentes dans $directory et les
 * enregistre dans $all_extensions (anti-doublon)
 *
 * @param string $directory
 * @param string[] $all_extensions
 */
function checkextension($directory, &$all_extensions){
	if (($handle = @opendir($directory))!==false) {
		while (($file = readdir($handle))!==false) {
			if((is_dir($directory.'/'.$file))&&($file != '.' && $file != '..')){
				checkextension($directory.'/'.$file, $all_extensions);
			}
			elseif($file != '.' && $file != '..'){
				$extension=explode('.',$file);
				// Si le fichier n'a pas de point, on ne le met pas !
				$check = ((strpos($file,'.')===false)?'':'.').$extension[count($extension)-1];
				if(!in_array($check,$all_extensions))
					$all_extensions[] = $check;
			}
		}
		closedir($handle);
	}
}

/**
 * Permet d'afficher dans la bonne unitée les octets passé
 * en paramètre.
 *
 * @param int $octet
 * @return string
 */
function unite($octet){
	global $unite_spec;

	$count=0;
	while($octet>=1024){
		$count++;
		$octet/=1024;
	}
	return($octet.' '.$unite_spec[$count]);
}

/**
 * Vérifie ce que contient $ligne
 * Permet de vérifier si le commentaire est déjà commencé avec /* ($start_comment)
 * Retourne
 *  - 0 : Commentaire
 *  - 1 : Ligne
 *  - 2 : Ligne Vide
 *
 * @param string $ligne
 * @return int
 */
function checkline($ligne){
	global $start_comment;

	$ligne = trim($ligne);
	if((substr($ligne,0,2)=='/*')&&(substr($ligne,strlen($ligne)-2)=='*/'))return 0;
	elseif((substr($ligne,0,2)=='/*')&&($start_comment==false)){$start_comment=true;return 0;}
	elseif((substr($ligne,0,2)=='*/')&&($start_comment==true)){$start_comment=false;return 0;}
	elseif((substr($ligne,strlen($ligne)-2,2)=='*/')&&($start_comment==true)){$start_comment=false;return 0;}
	elseif(substr($ligne,0,2)=='//')return 0;
	elseif(substr($ligne,0,1)=='#')return 0;
	elseif($start_comment==true)return 0;
	elseif($ligne=='')return 2;
	else return 1;
}

/**
 * Scan le $directory et enregistre les statistiques
 *
 * @param string $directory
 */
function readdirectory($directory){
	global $only_exclude,$extension_to_exclude,$extension_to_include,$count_val,$start_comment;

	if (($handle = opendir($directory))!==false) {
		while (($file = readdir($handle))!==false) {
			if((is_dir($directory.'/'.$file))&&($file != '.' && $file != '..')){
				$count_val[3]++;		// Dir ++
				readdirectory($directory.'/'.$file);
			}
			elseif($file != '.' && $file != '..'){
				$extension=explode('.',$file);
				$check = ((strpos($file,'.')===false)?'':'.').$extension[count($extension)-1];
				if($only_exclude==true && in_array($check,$extension_to_exclude)){
					$count_val[4]++;	// Excluded File ++
				}
				else{
					if($only_exclude==false && !in_array($check,$extension_to_include))
						$count_val[4]++;	// Excluded File ++
					else{	// We don't count THIS file !
						if(($directory.'/'.$file)!=($_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF'])){
							$count_val[5]++;	// Included File ++
							$count_val[6]+=filesize($directory.'/'.$file);		// Size
							$fp = fopen($directory.'/'.$file,'r');
							while(!feof($fp)){
								$buffer = fgets($fp,255);
								$count_val[checkline($buffer)]++;
							}
							// Lorsqu'un fichier est terminé, on remet le $start_comment à false
							$start_comment=false;
						}
					}
				}
			}
		}
		closedir($handle);
	}
}

/////////////////////////////////////////////////////////////////
// Program Starts
/////////////////////////////////////////////////////////////////
checkextension($directory_start, $all_extensions);

$choice = (isset($_POST['choice']))?$_POST['choice']:1;

echo '<html>
<head><title>Stats File</title></head>
<body bgcolor="#ffffff">';

echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<table width="550" border="1" align="center">
<tr><th colspan="2">Browsing Files</th></tr>
<tr><td>Search</td><td>
<input type="radio" name="choice" value="1" id="radio1"';if($choice==1)echo' checked="checked"';echo' /> <label for="radio1">Include</label><br />
<input type="radio" name="choice" value="2" id="radio2"';if($choice==2)echo' checked="checked"';echo' /> <label for="radio2">Exclude</label>
</td></tr>
<tr><td>Extension</td><td>';
for($i=0;$i<count($all_extensions);$i++){
	echo '<input type="checkbox" name="extension['.$i.']" value="1" id="choice'.$i.'"';
	if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
		echo ' checked="checked"';
	echo' /> <label for="choice'.$i.'">'.$all_extensions[$i].'</label><br />';
}
echo '</td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Search" /></td></tr>

</table>
</form>';

$extension_to_exclude = array();
$extension_to_include = array();
if($choice==2){
	$only_exclude = true;
	$compteur=0;
	for($i=0;$i<count($all_extensions);$i++)
		if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
			$extension_to_exclude[$compteur++] = $all_extensions[$i];
}
else{
	$only_exclude = false;
	$compteur=0;
	for($i=0;$i<count($all_extensions);$i++)
		if(isset($_POST['extension'][$i]) && $_POST['extension'][$i]==true)
			$extension_to_include[$compteur++] = $all_extensions[$i];
}

readdirectory($directory_start);
$count_total = $count_val[0]+$count_val[1]+$count_val[2];
echo '<table width="550" border="1" align="center"><tr><td>
<ul>Details <b>'.$directory_start.'</b><br />';
if($only_exclude==true){
	echo '<i>(The files with extension';
	for($i=0;$i<count($extension_to_exclude);$i++)
		echo ' '.$extension_to_exclude[$i].',';
	if(count($extension_to_exclude)==0)
		echo ' <u>NONE</u>';
	echo ' has not been counted.)</i>';
}
else{
	echo '<i>(ONLY The files with extension';
	for($i=0;$i<count($extension_to_include);$i++)
		echo ' '.$extension_to_include[$i].',';
	if(count($extension_to_include)==0)
		echo ' <u>NONE</u>';
	echo ' has been counted.)</i>';
}
echo '<li> Folders: <b>'.$count_val[3].'</b></li>
<li>Files: <b>'.$count_val[5].'</b> <i>('.$count_val[4].' excluded)</i></li>
<li>Lines: <b>'.$count_val[1].'</b>; Empty: <b>'.$count_val[2].'</b>; Comment: <b>'.$count_val[0].'</b>; Total: <b>'.$count_total.'</b></li>
<li>Tot. Size: <b>';
echo unite($count_val[6]);
echo '</b></li>
</ul>
</td></tr></table>';

echo '<p align="center" style="font-size:10px">&copy; <a href="http://other.lookstrike.com" target="_blank">Jean-Sébastien Goupil</a></p>';

echo '</body>
</html>';
clearstatcache();
?>

 Conclusion

*** Ce que le script ne fait pas :
- Si des fichiers/dossiers sont inaccessibles en lecture, une erreur sera générée
- Modifie les fichiers (aucune ouverture en écriture effectuée)
- Si vous écrivez tout votre script sur une ligne (echo 'A';if($a)echo'B';echo 'C';), vous n'aurez qu'une ligne dans votre script :)
- Compte les commentaires normalement formés...
Si votre commentaire est à la fin d'une ligne :
function... // comment
Cette ligne sera comptée comme une ligne de code
Si vous ouvrez votre commentaire avec /*, le code va attendre un */ à la fin ou au début d'une ligne et non au milieu d'une ligne !
Donc si vous faites ceci :
/* Commentaire */ function...
Cette ligne sera comptée comme commentaire et toutes les lignes suivantes aussi ! Ce n'est pas un bug... c'est comme ça.


*** Mot de l'auteur
J'utilise ce script activement pour compter le nombre de ligne de mes programmes. Il est très utile et je vous le conseille...
Oh et avant de vous vanter que votre script fait des millions de lignes, n'oubliez pas de ne pas sélectionner tous les fichiers qui ne sont pas écrits de votre main (gif, jpg, zip...)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 janvier 2005 18:05:21 :
Ajout du ZIP.
05 janvier 2005 18:14:25 :
Correction HTML...

 Sources du même auteur

Source avec Zip Source avec une capture LECTURE/ÉCRITURE DE TAGS ID3 VERSION 1 ET VERSION 2
Source avec Zip GÉRER LES ÉCHAPPEMENTS DE CARACTÈRES SUR TABLEAUX MULTIDIMEN...
Source avec Zip Source avec une capture PROJECT SELECTOR (SÉLECTION FACILE DE PROJET AVEC APACHE) ET...
Source avec Zip Source avec une capture AFFICHAGE TABLEAU AVEC TEMPLATE CLASSE
Source avec Zip TRI FUSION - MERGESORT

 Sources de la même categorie

Source avec Zip Source avec une capture GRACENATUR V02 - CDMS: CONTAIN AND DESIGN MANAGMENT SYSTEM par sajaris
Source avec Zip SIMULBAL: SERVEUR POUR BALANCES ÉLECTRONIQUES DE LABORATOIRE... par laservert
Source avec Zip GESTION D'ESPACE MEMBRES par jmpicot
TEST DU CHI2 OU KHI2 D'INDÉPENDANCE par phpAnonyme
CLASSE PAGINATION par darkis

Commentaires et avis

Commentaire de Anthomicro le 05/01/2005 19:11:08

Salut,

bon hormis quelques trucs :

- $unite_spec = array("bytes","KB","MB","GB","TB");

à remplacer par des simples quotes

- "!==FALSE" ou "==FALSE" (dans tes conditions)

inutile

-     for($i=0;$i<count($all_extensions);$i++) (et d'une manière générale toutes tes boucles contenant count()

il est préférable pour des questions d'optimisation de faire ceci  :
$nb=count($all_extensions)
for($i=0;$i<$nb;$i++)
{
//boucle
}


Pour ce qui est du code HTML c'est un peu crado mais largement mieux que ce qu'on voit habituellement, bref 8/10 pour moi ;-)

a ++


Commentaire de fg85 le 05/01/2005 22:10:29

moi je note 7/10 car je trouve la prog un peu mal ordonné sinon je dit comme Anthomicro , c'est" largement mieux que ce qu'on voit habituellement" ça c'est sur !!

-----------------------
http://fg.logiciel.free.fr

Commentaire de GRenard le 05/01/2005 22:23:24

J'ai déjà répondu au genre de count() dans les boucles, et je ne les corrigerai pas...
L'HTML n'est pas crade du tout... la sortie (output) l'est peut-etre...

Ya quoi mon array("bytes"...) ?

Montre moi les conditions en défaut, si une variable est BOOLEAN, il n'est pas nécessaire de faire une comparaison d'objet... la comparaison d'objet est nécessaire si on a une variable de type mixed.

Et vraiment 4/10 pour le script que j'ai fourni je trouve ca très déplorable... Beaucoup de monde qui avait vu ce script voulait l'avoir... donc je l'ai adapté un peu, corrigé et modifié en conséquence et maintenant posté...

S'il ne plait pas, je le supprimerai simplement... bien qu'il soit utile.

Commentaire de fg85 le 05/01/2005 22:26:14

En tout cas moi j'ai voter 7/10 ;-)

--------------------------
http://fg.logiciel.free.fr

Commentaire de Anthomicro le 05/01/2005 22:33:57

Bah moi 8/10...

Bref si l'HTML est crade ;-)

un petit exemple (bon ce n'est qu'un exemple y'a pas que ça)

echo '<p align="center" style="font-size:10px">&copy; <a href="http://other.lookstrike.com" target="_blank">Jean-Sébastien Goupil</a></p>';

à remplacer par ça si tu ne veux rien mettre dans une CSS

echo '<p style="text-align:center;font-size:10px">&copy; <a href="http://other.lookstrike.com" target="_blank">Jean-Sébastien Goupil</a></p>';

et par ça si tu veux bien disposer d'une CSS :

echo '<style type="text/css">
#bas{
  text-align:center;
  font-size:10px;
}
</style>
<p id="bas">&copy; <a href="http://other.lookstrike.com" target="_blank">Jean-Sébastien Goupil</a></p>';

après pour ce qui est des count() ce n'est pas optimisé...

bref j'ai pas cherché ton explication que tu nous a fourni mais cette syntaxe ne se justifie pas.

a ++

Commentaire de GRenard le 05/01/2005 22:47:28

La source à la base n'est pas faite en XHTML... c'est pas ca le but... c'est bien d'afficher le nombre de ligne. Et le standard pour le moment accepte très bien ce que j'ai écrit ! (w3c)
Le count() je sais, et je ne change pas tout simplement.
Pour le == du boolean, c'est compréhensible... c'est la même chose pour une string... si ta variable est d'un seul type, tu n'as pas à faire la comparaison d'objet ! sinon il faudrait metre des === et !== partout et cela serait inutile...
Et bon, si tu votes sur le html c'est dommage...

Commentaire de Anthomicro le 05/01/2005 23:04:47

j'ai mis 8/10 c'est pas moi qu'ai rabaissé ta note ;-)

bref W3C ou pas, on peut très bien faire un code hyper crade et qui passe le test du W3C ;-)

a ++

Commentaire de krevette le 06/01/2005 15:32:01

sympa ce petit morceau de code ;-)

krevette ;-)

Commentaire de coucou747 le 08/01/2005 00:02:00

pour les bools, je suis oki avec GRenard, c'est ridicule de suprimer ça...
Pour les counts, c'est de l'opt, fait pas refuser...

Sinon, j'ai regardé la capture, c'est pas mal... Gros quand même ton site...

Perso, pour un jeu d'échec php j'arrives à un peu plus de 60ko, et 2000 lignes de codes...
Je n'utilises pas ton logiciel pour quelques raisons : je ne veux pas afficher les noms des fichiers mais une description, afficher le nombre de lignes par fichier, je n'affiche pas le nombre de lignes de codes, sinon, c'est trop facile LOL... Et pour les scans, je ne veux pas scaner les .php car ils me servent de BDD... pour les scans, il y a un autre défaut : les dossiers persos ? on fait comment ? Moi, pour un autre truc, je lui ai interdit de scaner les dossiers commençant par perso... ça pourait être facile de modifier ton code pour l'adapter à mon site, mais la capture du tien montre que je n'en ai pas encore besoin lol... Et mon code perso me permet de m'améliorer...

Enfin ça me donne des idées pour faire par exemple un affichage des lignes de commentaires... et peut-être aussi un affichage sous forme d'une image...

Ton script est pas mal perso, je ne vois pas pourquoi il aurait 4... J'ai pas mis 10 car il a l'air assez imparfait, mais bien évidement d'un tout autre niveau que ce que l'on croise souvent ici...

Commentaire de GRenard le 08/01/2005 07:07:46

Quand tu entends par dossiers perso, tu parles genre des dossiers qui n'ont pas rapport avec ton projet ?
C'est vrai que cela serait bien qu'il affiche les dossiers avec les checkbox devant indiquant quel dossier prendre en compte.

Mais si tu parles vraiment de dossier que tu ne veux pas compter, c'est parce que normalement lorsque tu travailles sur ta machine, tu ne mets pas n'importe quoi dans ton DocumentRoot... tu le mets ailleurs et tu changes ton DocumentRoot au besoin... Mais par contre, sur un serveur que tu payes, c'est différent... tes choses perso sont dans le même DocumentRoot ...

Pour ce qui est de l'"Affichage" des résultats, j'ai mis ca dans un table tout bête... J'aurais pu y incorporer ma classe qui fait afficher les tableau (http://www.phpcs.com/code.aspx?id=25632) mais je ne souhaitais pas "mélanger" 2 scripts... Donc c'est plus facile si vous voulez modifier celui-ci !

Mon site ? ouais il est gros :P et ça c'est que la moitié :P c'est long programmer ca tout seul ! (bah on est 2 :) en recherche de PROgrammeurs)

Merci pour ton vote et commentaire.

Commentaire de coucou747 le 08/01/2005 12:36:00

mes dossiers persos, c'est un ensemble de pages qui ne sont accèssibles que par mes amis... Ces pages sont sur le net, mais il faut un mot de passe... Ils sont dans le même dossier que le reste de mon site...

Sinon, donc tu recherche des programmeurs ? pour quel genre de site ?

Commentaire de windu le 09/01/2005 11:54:46

salut Grenard...
Vraiment pratique ce code!! je pensai en faire un dans le meme genre car je suis en train de développer un gros projet pour ma licence... mais tu m'as devancé (remarque, ca me permettra de + me consacrer pour mon projet ;-))!!!

Ca mérite largement 8/10....

Commentaire de cacoun le 10/01/2005 09:56:08

salut à tous...
bon chuis un peu novice en la matière d'où ma question:
Je suis chez free.
on va dire que l'adresse de mon site est :
http://monsite.free.fr
que mets-je à la place de :
$directory_start = $_SERVER['DOCUMENT_ROOT'];

????
merci

Commentaire de GRenard le 10/01/2005 15:11:51

Ca devrait être correct le laisser comme ca... il s'agit de l'emplacement du début du "comptage"...
fais un echo $_SERVER['DOCUMENT_ROOT'];
Si ca équivaut à ton dossier ou tu mets tes fichiers (et dossiers), lors c'est le bon...

Commentaire de cacoun le 10/01/2005 15:43:54

voilà le message ke j'ai :
Warning: is_dir(): Unable to access /var/www/free.fr/2/0/monsite/.. in /var/www/free.fr/2/0/monsite/stats.php on line 55


ma ligne 55 est la suivante :
if((is_dir($directory.'/'.$file))&&($file != '.' && $file != '..')){

merci de vos réponses....

Commentaire de GRenard le 10/01/2005 17:51:23

Tu n'as pas lu ce qui est écrit en explication du script... La voici :

*** Ce que le script ne fait pas :
- Si des fichiers/dossiers sont inaccessibles en lecture, une erreur sera générée

Pour enlever l'erreur, tu peux toujours mettre un @ devant le is_dir mais c'est déconseillé...
Pour vraiment compter le nombre de ligne, je te conseille de faire rouler ce script sur TA machine et non sur un serveur avec pleins de dossiers innacessibles.

Commentaire de cacoun le 11/01/2005 09:30:45

Oki, merci....
et la bonne année à tous

Commentaire de eax le 17/01/2005 14:17:01

ça rapelle qq chose ça ;)

Commentaire de kegi le 15/05/2005 08:08:31

10/10 très utile et bien fait.

merci !

cordialement,
kegi@hotmail.com

Commentaire de aurelien0306 le 01/09/2005 19:50:18

Salut,

petit script bien intéressant et utile
dommage que ça manque un peu de souplesse (personnalisation simple, appel depuis une url...) mais ça se sera peut-être dans les bonus (car le script est déja très bon comme ça)...

Malgré tout, d'accord avec anthomicro, le html est pas trop "propre" et quand tu dis "Et le standard pour le moment accepte très bien ce que j'ai écrit ! (w3c)", je viens de valider ta page avec le validateur du w3c et tu verras que ça ne passe pas (même en précisant un doctype) (cf <ul> n'accepte que des <li>)...

et aussi peut-être que mais c'est purement subjectif, le tableau count_val serait plus lisible s'il était avec des clés non numériques du genre $count_val = array('comment'=>0,'line'=> 0, 'white line'=> 0,...)

Mais sinon ton script est bien 7/10... (peut-être une V2 excellente pour bientôt qui sait... ;))

Commentaire de GRenard le 01/09/2005 22:05:12

Salut, merci du commentaire mais je ne pense pas faire une version 2 du script pour le moment... manque total de temps...
Mais si je le change je prendrais tes commentaires en note...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales