|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
COMPTEUR DE FONCTIONS
Information sur la source
Description
Ce code permet de compter le nombre de fonctions-clé de PHP sont présentes dans un fichier (ou un répertoire avec possiblité de scanner ou non les sous-répertoire) défini.
Source
- <?php
-
-
- $scan="test.php"; //répertoire à scanner
- $tabKeywords=array("abs","acos","acosh","addcslashes","addslashes","aggregate","array","array_change_key_case","array_chunk","array_combine","array_count_values","array_diff","array_diff_assoc","array_diff_key","array_diff_uassoc","array_diff_ukey","array_fill","array_filter","array_flip","array_intersect","array_intersect_assoc","array_intersect_key","array_intersect_uassoc","array_intersect_ukey","array_key_exists","array_keys","array_map","array_merge","array_merge_recursive","array_multisort","array_pad","array_pop","array_push","array_rand","array_reduce","array_reverse","array_search","array_shift","array_slice","array_splice","array_sum","array_udiff","array_udiif_assoc","array_udiff_uassoc","array_uintersect","array_uintersect_assoc","array_uintersect_uassoc","array_unique","array_unshift","array_values","array_walk","array_walk_recursive","arsort","asin","asinh","asort","closedir","echo","isset","is_array","is_dir","is_file","mysql_affected_rows","mysql_change_user","mysql_client_encoding","mysql_close","mysql_connect","mysql_create_db","mysql_data_seek","mysql_db_name","mysql_db_query","mysql_drop_db","mysql_errno","mysql_escape_string","mysql_fetch_array","mysql_fetch_assoc","mysql_fetch_field","mysql_fetch_lengths","mysql_fetch_object","mysql_fetch_row","mysql_field_flags","mysql_field_len","mysql_field_name","mysql_field_seek","mysql_field_table","mysql_field_type","mysql_free_result","mysql_get_client_info","mysql_get_host_info","mysql_get_proto_info","mysql_get_server_info","mysql_info","mysql_insert_id","mysql_list_dbs","mysql_list_fields","mysql_list_processes","mysql_list_tables","mysql_num_fields","mysql_num_rows","mysql_pconnect","mysql_ping","mysql_query","mysql_real_escape_string","mysql_result","mysql_select_db","mysql_stat","mysql_tablename","mysql_thread_id","mysql_unbuffered_query","opendir","readdir","split"); //tableau des fonctions-clés de PHP à rechercher
- $sousrep=1; //si 1, alors scanner aussi les sous-répertoires
- $tab=array();
-
- function compteur($homedir,$tabKeywords,$sous_rep)
- {
- if(is_dir($homedir))
- {
- $dir = opendir($homedir);
- while ($file = readdir($dir))
- {
- if($file != "." && $file !="..")
- {
- if (is_dir($homedir."/".$file) && $sous_rep == 1)
- {
- compteur($homedir."/".$file,1);
- }
- $tableau=azerty($file,$tabKeywords,&$tableau);
- }
- }
- closedir($dir);
- return ($tableau);
- }
- else
- {
- $tableau=azerty($homedir,$tabKeywords);
- }
- return ($tableau);
- }
-
- function azerty($file,$tabKeywords,$tab=array())
- {
- if(!$chaineTxt=file_get_contents($file))
- {
- echo "error";
- }
- $tabMots=split('[ (]',$chaineTxt);
- for($i=0;$i<count($tabMots);$i++)
- {
- for($j=0;$j<count($tabKeywords);$j++)
- {
- if(stristr($tabMots[$i],$tabKeywords[$j]))
- {
- if(isset($tab[$tabKeywords[$j]]))
- {
-
- $tab[$tabKeywords[$j]]++;
- }
- else
- {
- $tab[$tabKeywords[$j]]=1;
- }
- }
- }
- }
- return($tab);
- }
-
- $tab=compteur($scan,$tabKeywords,$sousrep);
-
- echo "Nombre de fonctions trouvées:<br>";
- echo count($tab);
-
- echo "<p>Affichage par ordre alphabétique:<br>";
- ksort($tab);
- echo "<pre>";
- print_r($tab);
- echo "</pre>";
-
- echo "<p>Affichage par ordre décroissant:<br>";
- arsort($tab);
- echo "<pre>";
- print_r($tab);
- echo "</pre>";
-
- ?>
<?php
$scan="test.php"; //répertoire à scanner
$tabKeywords=array("abs","acos","acosh","addcslashes","addslashes","aggregate","array","array_change_key_case","array_chunk","array_combine","array_count_values","array_diff","array_diff_assoc","array_diff_key","array_diff_uassoc","array_diff_ukey","array_fill","array_filter","array_flip","array_intersect","array_intersect_assoc","array_intersect_key","array_intersect_uassoc","array_intersect_ukey","array_key_exists","array_keys","array_map","array_merge","array_merge_recursive","array_multisort","array_pad","array_pop","array_push","array_rand","array_reduce","array_reverse","array_search","array_shift","array_slice","array_splice","array_sum","array_udiff","array_udiif_assoc","array_udiff_uassoc","array_uintersect","array_uintersect_assoc","array_uintersect_uassoc","array_unique","array_unshift","array_values","array_walk","array_walk_recursive","arsort","asin","asinh","asort","closedir","echo","isset","is_array","is_dir","is_file","mysql_affected_rows","mysql_change_user","mysql_client_encoding","mysql_close","mysql_connect","mysql_create_db","mysql_data_seek","mysql_db_name","mysql_db_query","mysql_drop_db","mysql_errno","mysql_escape_string","mysql_fetch_array","mysql_fetch_assoc","mysql_fetch_field","mysql_fetch_lengths","mysql_fetch_object","mysql_fetch_row","mysql_field_flags","mysql_field_len","mysql_field_name","mysql_field_seek","mysql_field_table","mysql_field_type","mysql_free_result","mysql_get_client_info","mysql_get_host_info","mysql_get_proto_info","mysql_get_server_info","mysql_info","mysql_insert_id","mysql_list_dbs","mysql_list_fields","mysql_list_processes","mysql_list_tables","mysql_num_fields","mysql_num_rows","mysql_pconnect","mysql_ping","mysql_query","mysql_real_escape_string","mysql_result","mysql_select_db","mysql_stat","mysql_tablename","mysql_thread_id","mysql_unbuffered_query","opendir","readdir","split"); //tableau des fonctions-clés de PHP à rechercher
$sousrep=1; //si 1, alors scanner aussi les sous-répertoires
$tab=array();
function compteur($homedir,$tabKeywords,$sous_rep)
{
if(is_dir($homedir))
{
$dir = opendir($homedir);
while ($file = readdir($dir))
{
if($file != "." && $file !="..")
{
if (is_dir($homedir."/".$file) && $sous_rep == 1)
{
compteur($homedir."/".$file,1);
}
$tableau=azerty($file,$tabKeywords,&$tableau);
}
}
closedir($dir);
return ($tableau);
}
else
{
$tableau=azerty($homedir,$tabKeywords);
}
return ($tableau);
}
function azerty($file,$tabKeywords,$tab=array())
{
if(!$chaineTxt=file_get_contents($file))
{
echo "error";
}
$tabMots=split('[ (]',$chaineTxt);
for($i=0;$i<count($tabMots);$i++)
{
for($j=0;$j<count($tabKeywords);$j++)
{
if(stristr($tabMots[$i],$tabKeywords[$j]))
{
if(isset($tab[$tabKeywords[$j]]))
{
$tab[$tabKeywords[$j]]++;
}
else
{
$tab[$tabKeywords[$j]]=1;
}
}
}
}
return($tab);
}
$tab=compteur($scan,$tabKeywords,$sousrep);
echo "Nombre de fonctions trouvées:<br>";
echo count($tab);
echo "<p>Affichage par ordre alphabétique:<br>";
ksort($tab);
echo "<pre>";
print_r($tab);
echo "</pre>";
echo "<p>Affichage par ordre décroissant:<br>";
arsort($tab);
echo "<pre>";
print_r($tab);
echo "</pre>";
?>
Conclusion
petite explication... la variable "$scan" désigne le fichier (ou le répertoire) à scanner
"$sousrep" indique s'il faut aussi scanner les sous-répertoires (par défaut, oui). Mettez à 0 pour ne pas les scanner
L'affichage des résultats se fait avec la fonction print_r, je sais ca donne pas un affichage super beau, masi c'est surtout pour monter le résultat (qui est affiché par ordre alphabétique et aussi par ordre décroissant)
Vous pouvez rajouter des fonctions-clés ou même vos propres fonctions dans le tableau $tabKeywords
Historique
- 06 novembre 2004 15:29:58 :
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
|