Valid XHTML    Valid CSS2    

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("&nbsp;",$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 gH    Retour à la page principale de   (gH)