- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
public static function ParseContainer($s,$be,$en,$cb,$ret_beg=false,$re=false)
{
if(!is_callable($cb))
return$s;
$bl=strlen($be);
$el=strlen($en);
for(;;)
{
if(false===$bp=strpos($s,$be) or false===$ep=strpos($s,$en,$bp+1+$bl))
break;
$brp=strrpos(substr($s,0,$ep-$bp+1),$be);
if($brp>$bp)
$bp=$brp;
$ns=substr($s,$bp+($ret_beg ? 0 : $bl),$ep-$bp-($ret_beg ? 0 : $bl)+($re ? $el : 0));
$ns=call_user_func($cb,$ns);
$s=substr_replace($s,$ns,$bp,$ep-$bp+$el);
}
return$s;
}
Комментарии (0) RSS
Добавить комментарий