Advertisement
Architecte

strrstr / strristr

Aug 10th, 2012
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1. /**
  2.  * Trouve la dernière occurrence dans une chaîne
  3.  *
  4.  * @param string $haystack      La chaîne d'entrée
  5.  * @param mixed  $needle        Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant
  6.  * @param bool   $before_needle Si vaut TRUE, strrstr() retourne la partie de haystack avant la dernière occurrence de needle (needle étant exclus)
  7.  *
  8.  * @return mixed
  9.  */
  10. function strrstr($haystack, $needle, $before_needle = false)
  11. {
  12.     $haystack      = (string)$haystack;
  13.     $before_needle = (bool)$before_needle;
  14.  
  15.     $pos = strrpos($haystack, $needle);
  16.  
  17.     if (!$before_needle) {
  18.         $retval = substr($haystack, $pos);
  19.     } else {
  20.         $retval = substr($haystack, 0, $pos);
  21.     }
  22.  
  23.     return $retval;
  24. }
  25.  
  26. /**
  27.  * Trouve la dernière occurrence dans une chaîne, de façon insensible à la casse
  28.  *
  29.  * @param string $haystack      La chaîne d'entrée
  30.  * @param mixed  $needle        Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ASCII du caractère correspondant
  31.  * @param bool   $before_needle Si vaut TRUE, strristr() retourne la partie de haystack avant la dernière occurrence de needle (needle étant exclus)
  32.  *
  33.  * @return mixed
  34.  */
  35. function strristr($haystack, $needle, $before_needle = false)
  36. {
  37.     $haystack      = (string)$haystack;
  38.     $before_needle = (bool)$before_needle;
  39.  
  40.     $pos = strripos($haystack, $needle);
  41.  
  42.     if (!$before_needle) {
  43.         $retval = substr($haystack, $pos);
  44.     } else {
  45.         $retval = substr($haystack, 0, $pos);
  46.     }
  47.  
  48.     return $retval;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement