note 66409 deleted from function.strstr by bjori
| From: | bjori@php.net | Date: | Tue, 01 Aug 2006 08:56:50 +0000 |
| Subject: | note 66409 deleted from function.strstr by bjori | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-115391@lists.php.net to get a copy of this message | ||
Note Submitter: repley at freemail dot it
----
To explode around first occurrence of a character in a string (inclusive or NOT inclusive), using
strstr and strstr_reverse.
<?
//strxstr(string haystack, string needle [, bool int leftinclusive [, bool int rightinclusive ]])
function strxstr($haystack, $needle, $l_inclusive = 0, $r_inclusive = 0){
if(strrpos($haystack, $needle)){
//Everything before first $needle in $haystack.
$left = substr($haystack, 0, strpos($haystack, $needle) + $l_inclusive);
//Switch value of $r_inclusive from 0 to 1 and viceversa.
$r_inclusive = ($r_inclusive == 0) ? 1 : 0;
//Everything after first $needle in $haystack.
$right = substr(strstr($haystack, $needle), $r_inclusive);
//Return $left and $right into an array.
$a = array($left, $right);
return $a;
}else{
return false;
}
}
//start test
$haystack = "http://www....unknown....com.biz......";
$needle = ".";
$l_inclusive = 1; //1 for inclusive mode, 0 for NOT inclusive mode
$r_inclusive = 1; //1 for inclusive mode, 0 for NOT inclusive mode
$a = strxstr($haystack, $needle, $l_inclusive, $r_inclusive);
if($a){echo "Left: <strong>" . $a[0] . "</strong><br />Right:
<strong>" . $a[1] . "</strong>";}else{echo "Failed!";}
//end test
?>
To explode around last occurrence of a character in a string, for example to get filename and
extension separately into an array, use strxchr(): http://www.php.net/manual/en/function.strrchr.php