Fonction qui renvoie une chaine differentielle

Contenu du snippet

Voilà ne maîtrisant pas bien les expressions régulières et ayant parcouru en vain les fonctions de string du php à la recherche d'une fonction renvoyant la chaine differentielle de 2 chaines comparée ,je me suis lancé:

Source / Exemple :


<?php
function differential_str($refstr , $comparestr) {
  //on parcours la chaine de reference 
  $reflength=strlen($refstr);
  for ( $i=0 ; $i<$reflength && $refstr[$i]==$comparestr[$i] ; $i++ ){
  
  }  
  
  // si la totalité de la chaine est parcourue on continue sinon on retourne -1
  
  if  ( $i == $reflength ) { 
    $diff="";
    $complength=strlen($comparestr);
    //Boucle sur la chaine differentielle
    for ($j=$i ; $j < $complength ; $j++) {
      
      //$diff va stocker le surplus de la chaine comparée
      $diff .= $comparestr[$j];
      
    }
    
    if ($diff=="")
      return 0; //les 2 chaines sont identiques
    else return $diff;//la chaine differentielle
          
  }
  else return -1 ; //la chaine que l'on compare ne commence pas par la chaine de reference 

} 
echo ( differential_str("salut","salut les gars") );//retourne " les gars"
echo ( differential_str("salut","salut") );//retourne 1
echo ( differential_str("salut","rien à voir") );//retourne -1
?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.