php查询子字符串位置代码
php查询子字符串位置代码 ```phplt;?php /* 这个函数返回字串S1在字串S2中的位置。如果S2中没有包含S1,那么就返回0 */ function InStr($s1, $s2) { //检查是否合法输入 if(!(is_s
<?php /* 这个函数返回字串S1在字串S2中的位置。如果S2中没有包含S1,那么就返回0 */ function InStr($s1, $s2) { //检查是否合法输入 if(!(is_string($s1) && is_string($s2))) return 0; $s1len = strlen($s1); $s2len = strlen($s2); //检查S1是否在S2中 if(!ereg($s1, $s2)) return 0; //如果是一个简单的实例 if($s1 == $s2) return 1; //设置最小搜索次数 $begin = 0; $end = $s2len - $s1len; //初始搜索位置 $position = 0; //做一个s2 在 s1的二进制的搜索 while($end > $begin + 1) { $middle = ceil(($begin + $end) / 2); $leftBegin = $begin; $rightBegin = $middle + $s1len; $leftEnd = $middle; $rightEnd = $end + $s1len; //先检查左边 if(ereg($s1, substr($s2, $leftBegin, $rightBegin - $leftBegin))) { $end = $middle; } else //(ereg($s1, substr($s2, $leftEnd, $rightEnd - $leftEnd))) { $position += $middle - $begin; $begin = $middle; } } if(ereg($s1, substr($s2, $end, $s1len))) $position++; //返回所在的位置 return $position + 1; } ?>
- 上一篇:php的颜色定义表
- 下一篇:php实现计数器程序代码
精彩图集
精彩文章