Listing du fichier strfun.php
00001 <?php
00002
00003 # (gH) -_- strfun.php ; TimeStamp (unix) : 06 Avril 2006 vers 11:22
00004
00005 # strfun.php version 3.17
00006
00007 ###########################################################
00008 ###########################################################
00009 ## ##
00010 ## fonctions utiles pour chaines de caractères ##
00011 ## ##
00012 ###########################################################
00013 ###########################################################
00014
00015 function copies($chen,$frep) {
00016
00017 ###########################################################
00018
00019 # recopie un nb de fois spécifié la chaine
00020
00021 $chret = "" ;
00022 for ($idr=1;$idr<=$frep;$idr++) {
00023 $chret .= $chen ;
00024 } ; # fin pour idr
00025 return($chret) ;
00026 } ; # fin de fonction copies
00027
00028 ###########################################################
00029 ###########################################################
00030
00031 function compteMots ( $phrase) {
00032
00033 ###########################################################
00034
00035 if (strlen(trim($phrase))==0) { return "" ; } ;
00036
00037 # renvoie le n-iÉme mot d'une phrase
00038
00039 $phrase = chop(trim($phrase)) ;
00040 $tmots = explode(" ",trim($phrase)) ;
00041 # il est possible que des espaces consécutifs
00042 # perturbent explode donc on vérifie
00043 # que les "mots" sont non vides
00044
00045 $vnnbm = 0 ;
00046 $nbt = count($tmots) ;
00047 for ($idm=0;$idm<$nbt;$idm++) {
00048 $mot = $tmots[$idm] ;
00049 # print " mot $idm = $mot\n" ;
00050 if (strlen($mot)>0) {
00051 $vnnbm++ ;
00052 } ; # fin si
00053 } ; # fin pour chaque
00054
00055 return($vnnbm) ;
00056
00057 } ; # fin de fonction compteMots
00058
00059 ###########################################################
00060
00061 function mot ( $phrase, $num) {
00062
00063 ###########################################################
00064
00065 # renvoie le n-ième mot d'une phrase
00066
00067 $phrase = chop(trim($phrase)) ;
00068 $tmots = explode(" ",trim($phrase)) ;
00069 # il est possible que des espaces consécutifs
00070 # perturbent explode donc on vérifie
00071 # que les "mots" sont non vides
00072
00073 $vnbm = 0 ;
00074 $nbt = count($tmots) ;
00075 $vtmots = array() ;
00076 for ($idm=0;$idm<$nbt;$idm++) {
00077 $mot = $tmots[$idm] ;
00078 # print " mot $idm = $mot\n" ;
00079 if (strlen($mot)>0) {
00080 $vnbm++ ;
00081 $vtmots[$vnbm] = $mot ;
00082 } ; # fin si
00083 } ; # fin pour chaque
00084 if (($num==0) or (!isset($vtmots[$num]))) {
00085 $lm = "" ;
00086 } else {
00087 $lm = $vtmots[$num] ;
00088 } ; # fin de si
00089 return $lm ;
00090
00091 } ; # fin de fonction mot
00092
00093 ###########################################################
00094
00095 function nbmots ( $phrase) {
00096
00097 ###########################################################
00098
00099 # renvoie le n-ième mot d'une phrase
00100
00101 $phrase = chop(trim($phrase)) ;
00102 $tmots = explode(" ",trim($phrase)) ;
00103 # il est possible que des espaces consécutifs
00104 # perturbent explode donc on vérifie
00105 # que les "mots" sont non vides
00106
00107 $vnbm = 0 ;
00108 $nbt = count($tmots) ;
00109 for ($idm=0;$idm<$nbt;$idm++) {
00110 $mot = $tmots[$idm] ;
00111 # print " mot $idm = $mot\n" ;
00112 if (strlen($mot)>0) {
00113 $vnbm++ ;
00114 } ; # fin si
00115 } ; # fin pour chaque
00116
00117 return($vnbm) ;
00118
00119 } ; # fin de fonction nbMots
00120
00121
00122 ###########################################################
00123 ###########################################################
00124
00125 function premierCarNonNul( $chen ) {
00126
00127 ###########################################################
00128
00129 # renvoie le premier caractère qui n'est pas un espace
00130 # pour chaine vide, on renvoie "" et pour que des espaces,
00131 # on envoie "_"
00132
00133 $cr = "" ;
00134 $lng = strlen( $chen ) ;
00135 if ($lng>0) {
00136 $cr = "_" ;
00137 $idc = 0 ;
00138 while ($idc<$lng) {
00139 $cc = substr($chen,$idc,1) ;
00140 if ($cc==" ") { $idc++ ; } else { $cr = $cc ; $idc = $lng + 1 ; } ;
00141 } ; # fintant que
00142 } ; # fin de si
00143 return $cr ;
00144
00145 } ; # fin de fonction premierCarNonNul
00146
00147 ###########################################################
00148 ###########################################################
00149
00150 function surncarg( $chen , $lng ) {
00151
00152 ###########################################################
00153
00154 # cadre la chaine à gauche sur une longueur donnée
00155 # cette fonction ne déborde pas contrairement à sprintf
00156
00157 $cop = copies(" ",$lng) ;
00158 $res = substr($chen.$cop,0,$lng-1) ;
00159 return $res ;
00160
00161 } ; # fin de fonction surncarg
00162
00163 ###########################################################
00164
00165 function surncard( $chen , $lng ) {
00166
00167 ###########################################################
00168
00169 # cadre la chaine à droite sur une longueur donnée
00170 # cette fonction ne déborde pas contrairement à sprintf
00171
00172 $res = $chen ;
00173 while (strlen($res)<$lng) { $res = " $res" ; } ;
00174 return $res ;
00175
00176 } ; # fin de fonction surncarg
00177
00178 ###########################################################
00179
00180 function surncardzero( $chen , $lng ) {
00181
00182 ###########################################################
00183
00184 # cadre la chaine à droite sur une longueur donnée
00185 # cette fonction ne déborde pas contrairement à sprintf
00186
00187 $res = $chen ;
00188 while (strlen($res)<$lng) { $res = "0$res" ; } ;
00189 return $res ;
00190
00191 } ; # fin de fonction surncarg
00192
00193 ###########################################################
00194
00195 function surncardnbsp( $chen , $lng ) {
00196
00197 ###########################################################
00198
00199 # cadre la chaine à droite sur une longueur donnée
00200 # cette fonction ne déborde pas contrairement à sprintf
00201
00202 $ajout = copies(" ",$lng-strlen($res)) ;
00203 $res = $ajout.$chen ;
00204 return $res ;
00205
00206 } ; # fin de fonction surncarg
00207
00208 ###########################################################
00209
00210 function nbdif( $seq1 , $seq2 ) {
00211
00212 ###########################################################
00213
00214 # renvoie le nombre de différences entre deux chaines
00215 # on complète la plus petite pour comparer deux chaines de longeurs égales
00216
00217 $lng1 = strlen($seq1) ;
00218 $lng2 = strlen($seq2) ;
00219 $lngc = max($lng1,$lng2) ;
00220
00221 # complétion éventuelle des chaines
00222
00223 $idc = $lng1 ;
00224 while ($idc<=$lngc) { $seq1 .= " " ; $idc++ ; } ;
00225 $idc = $lng2 ;
00226 while ($idc<=$lngc) { $seq2 .= " " ; $idc++ ; } ;
00227
00228 # print " chaine 1 : * $seq1 * \n" ;
00229 # print " chaine 2 : * $seq2 * \n" ;
00230
00231 # comptage du nombre de différences
00232
00233 $idc = 0 ;
00234 $ndi = 0 ;
00235 while ($idc<$lngc) {
00236 $car1 = substr($seq1,$idc,1) ;
00237 $car2 = substr($seq2,$idc,1) ;
00238 if ($car1 != $car2) { $ndi++ ; } ;
00239 $idc++ ;
00240 } ; # fin tant que
00241 # print " soit $ndi différences \n" ;
00242 return $ndi ;
00243
00244 } ; # fin de fonction nbdif
00245
00246 ###########################################################
00247 ###########################################################
00248
00249
00250 ?>
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)