วันพุธที่ 10 พฤศจิกายน พ.ศ. 2553

inner new php function

function หา string ที่อยู่ระหว่างคำสองคำที่ระบุ

<?php

function inner($s,$f,$e){
$f = (string)$f; $e = (string)$e;
if (strlen($f)==0 || strlen($e)==0 || ($start = strpos($s, $f))===false) return "";
$s = substr($s, $start+strlen($f));
return substr($s, 0, strrpos($s, $e));
}

function innerutf8($s,$f,$e){ //safe สำหรับ utf8 มากกว่า
foreach(array('s','f','e') as $i) $$i = iconv('UTF-8','TIS-620',$s);
return iconv('TIS-620','UTF-8',inner($s,$f,$e));
}

$s = '[abc][abc] test0 [defg] test1 [/defg] test2 [/abc][/abc]';
echo '<hr/>'; var_dump(inner($s,'[defg]','[/defg]'));
echo '<hr/>'; var_dump(inner($s,'[abc]','[/abc]'));
echo '<hr/>'; var_dump(inner($s,'0','2'));
echo '<hr/>'; var_dump(inner($s,0,2));
echo '<hr/>'; var_dump(inner($s,'[abc]','[/abcd]')); //not found
echo '<hr/>'; var_dump(inner($s,'[abcd]','[/abc]')); //not found
echo '<hr/>'; var_dump(inner($s,'[abcd]','[/abcd]')); //not found
echo '<hr/>'; var_dump(inner($s,'','')); //not found

?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น