note 74546 added to function.strpos
| From: | php at mattch dot net | Date: | Mon, 16 Apr 2007 22:40:26 +0000 |
| Subject: | note 74546 added to function.strpos | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-125484@lists.php.net to get a copy of this message | ||
Get text between two strings, nonencasing. Results are returned by array.
The following is a modification of the code provided by mvp at mvpprograms dot com. Instead of
substr'ing, it uses an offset. When using extremely large strings I found it's more
reliable than some others on this page, and has been performing 400x faster than his original. Hope
it helps.
<?php
function TextBetweenArray($s1,$s2,$s,$offset=0){
$myarray=array();
$s1=strtolower($s1);
$s2=strtolower($s2);
$L1=strlen($s1);
$scheck=strtolower($s);
do {
$pos1 = strpos($scheck,$s1,$offset);
if($pos1 !== false) {
$pos2 = strpos($scheck,$s2,$pos1+$L1);
if($pos2 !== false) {
$myarray[]=substr($s,$pos1+$L1,$pos2-$pos1-1);
$offset=$pos2;
}
}
} while (($pos1!==false) && ($pos2!==false));
return $myarray;
}
?>
----
Server IP: 64.71.164.2
Probable Submitter: 161.28.183.225
----
Manual Page -- http://www.php.net/manual/en/function.strpos.php
Edit -- https://master.php.net/note/edit/74546
Del: integrated -- https://master.php.net/note/delete/74546/integrated
Del: useless -- https://master.php.net/note/delete/74546/useless
Del: bad code -- https://master.php.net/note/delete/74546/bad+code
Del: spam -- https://master.php.net/note/delete/74546/spam
Del: non-english -- https://master.php.net/note/delete/74546/non-english
Del: in docs -- https://master.php.net/note/delete/74546/in+docs
Del: other reasons-- https://master.php.net/note/delete/74546
Reject -- https://master.php.net/note/reject/74546
Search -- https://master.php.net/manage/user-notes.php