3v4l.org

run code in 300+ PHP versions simultaneously
<?php function tag($str,$pos1,$pos2) { $offset=-1; $arrs=explode("-",$str); list($pos1,$pos2)=array(min($pos1,$pos2),max($pos1,$pos2)); foreach($arrs as &$chunk) { $len=strlen($chunk); if($offset+1>$pos2) break; if($offset+1<=$pos2 && $offset+$len>=$pos2) { $chunk=substr($chunk,0,$pos2-$offset-1)."<span style='color:red'>".substr($chunk,$pos2-$offset-1,1)."</span>".substr($chunk,$pos2-$offset); } if($offset+1<=$pos1 && $offset+$len>=$pos1) { $chunk=substr($chunk,0,$pos1-$offset-1)."<span style='color:red'>".substr($chunk,$pos1-$offset-1,1)."</span>".substr($chunk,$pos1-$offset); } $offset+=$len; } return $arrs; } print_r(tag("55798-45366-11255-48084-35644-28027-85391-45536-85002-55350-4166-5991-0313-3681-9382-9143-2852-8142-8643-0235-875-383-839-92-91-00-81",25,87)); ?>

preferences:
37.85 ms | 402 KiB | 5 Q