Advertisement
ROMaster2

strbetween for PHP

Dec 29th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.05 KB | None | 0 0
  1. /**
  2.  * Extract a string inside of a larger string, case sensitive.
  3.  *
  4.  * @param string      $haystack
  5.  * @param null|string $startStr
  6.  * @param null|string $endStr
  7.  * @param bool        $includeStart
  8.  * @param bool        $includeEnd
  9.  * @return string|false
  10.  */
  11. function strbetween(
  12.     string $haystack,
  13.     ?string $startStr,
  14.     ?string $endStr = null,
  15.     bool $includeStart = false,
  16.     bool $includeEnd = false) : ?string
  17. {
  18.     if (empty($haystack))
  19.         return '';
  20.  
  21.     if (empty($startStr))
  22.         $start = 0;
  23.     else
  24.     {
  25.         $startPos = strpos($haystack, $startStr, 0);
  26.         if ($startPos === false)
  27.             return null;
  28.         $start = $startPos + ($includeStart ? 0 : strlen($startStr));
  29.     }
  30.  
  31.     if (empty($endStr))
  32.         $end = strlen($haystack);
  33.     else
  34.     {
  35.         $endPos = strpos($haystack, $endStr, $start);
  36.         if ($endPos === false)
  37.             return null;
  38.         $end = $endPos + ($includeEnd ? strlen($endStr) : 0);
  39.     }
  40.  
  41.     return substr($haystack, $start, $end - $start);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement