Utiliser la fonction Substr() de PHP pour couper des chaînes longues en ajoutant des points de suspension

La fonction substr()


PHP references des fonctions PHP

(PHP 4, PHP 5)

substr() — Retourne un segment de chaîne

La fonction substr()

Alors, disons que vous avez une longue chaîne dans une variable nommée foo, et une variable vide nommé bar :

$foo = "Comment utiliser la fonction PHP substr() pour tronquer des chaînes longues et ajouter des points de suspension" ;
$bar = "" ;

et supposons que vous vouliez couper cette chaîne jusqu'à quarante et deux caractères afin que le résultat serait :

"Comment utiliser la fonction PHP substr() "

Pour ce faire, nous utilisons une seule commande PHP appelée substr()

Définition et utilisation

La fonction  substr () renvoie une partie d'une chaîne.

Syntaxe

substr (chaîne, début, longueur) 
      
 

Paramètre

Description

chaîne

Requis. Spécifie la chaîne pour renvoyer une partie de

début

Requis. Spécifie où commencer dans la chaîne

Si début est positif, la chaîne retournée commencera au caractère numéro début , dans la chaîne string . Le premier caractère est numéroté zéro. Actuellement, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.

Si début est négatif, la chaîne retournée commencera au caractère numéro début à compter de la fin de la chaîne .

Si la chaîne est plus petit ou égal à début caractères de long, FALSE sera retourné.

 

longueur

Facultatif. Spécifie la longueur de la chaîne retournée. Par défaut c’est la fin de la chaîne.

Si longueur est fourni et est positif, la chaîne retournée contiendra au plus longueur caractères, en commençant à partir du caractère début (en fonction de la taille de la chaîne).

Si longueur est fourni et négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne. Si début représente une position hors de la chaîne, une chaîne vide sera retournée.

Si le paramètre longueur est fourni et vaut 0, FALSE ou NULL , une chaîne vide sera retournée.

Si longueur est omis, la sous chaine commençant à partir de début jusqu'à la fin sera retournée.


Revenons à notre chaîne dans la variable $foo. Puisque nous voulons commencer au début de la chaîne, nous allons utiliser 0 comme l'index de départ car, comme tous les tableaux, notre chaîne commence à l'index 0, au lieu de 1. Pour la logueur, nous allons utiliser 42, parce que c'est ce que nous avons décidé. Et donc le code ressemble à :

Sélectionner le code

$bar = substr($foo,0,42) ;
echo $bar ;/* « ce qui affiche: Comment utiliser la fonction PHP substr() »*/
/* Mais, comme je l'ai promis je vous montrerais comment ajouter des points de suspension :*/
$bar = substr($foo,0,40). "...";
echo $bar ; /* « ce qui affiche: Comment utiliser la fonction PHP substr() ...»*/
  
 

Supposons maintenant que nous voulons afficher un nombre de caractères en commençant depuis la fin de notre chaîne.
Nous allons toujours utiliser la fonction php substr(), mais avec un index de début négatif, ce qui donne par exemple -1 pour commencer depuis le premier caractère à partir de la fin de notre chaîne, -2 pour le second caractère et ainsi desuite.

Exemple 1
Sélectionner le code

	<?php
      $rest = substr("abcdef", -1);    // retourne "f"
      $rest = substr("abcdef", -2);    // retourne "ef"
      $rest = substr("abcdef", -3, 1); // retourne "d"
      ?>
      
 

Exemple 2 Sélectionner le code
<?php
      echo substr('abcdef', 1);     // retourne bcdef
      echo substr('abcdef', 1, 3);  // retourne bcd
      echo substr('abcdef', 0, 4);  // retourne abcd
      echo substr('abcdef', 0, 8);  // retourne abcdef
      echo substr('abcdef', -1, 1); // retourne f
 
 

Exemple 3

Sélectionner le code
<?php 
      // Accéder à un simple caractère dans une chaîne
      // peut également être réalisé en utilisant des crochets
      $chaineing = 'abcdef';
      echo $chaineing[0];                 // a
      echo $chaineing[3];                 // d
      echo $chaineing[strlen($chaineing)-1]; // f
       
      ?>
      
 

Exemple 4

un morceau de chaîne de caractère compris entre deux morceaux

Dans cet exemple nous voulons un morceau de chaîne de caractère compris entre deux autres morceaux.
Soit la variable de chaîne :
$foo= " un morceau de chaîne de caractère compris entre deux autres " ;
et les variables : $a= " un morceau de" : et $b= " deux autres " ;

Nous voulons le morceau de chaîne de caractère compris entre $a et $b (c’est à dire entre "un morceau " et "deux autres".
Nous allons utiliser deux fonctions :
la fonction substr() et la fonction strpos()
pour encadrer la chaîne recherchée : soit " chaîne de caractère compris entre ".

Sélectionner le code

<?php
      function get_between($input, $start, $end)
      {
        $substr = substr($input, strlen($start)+strpos($input, $start), (strlen($input) - strpos($input, $end))*(-1));
        return $substr;
      }
	  
      //Exemple:
       
      $foo = " un morceau de chaîne de caractère compris entre deux autres ";
      $a = " un morceau de";
      $b = "deux autres";
       
      echo get_between($foo, $a, $b);
       
      //Retourne:
      //chaîne de caractère compris entre
      ?>
      
 


Par carabde 22 Aout 2014