note 71572 added to function.preg-match-all
| From: | chuckie at osu1 dot php dot net | Date: | Wed, 06 Dec 2006 14:20:42 +0000 |
| Subject: | note 71572 added to function.preg-match-all | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-120337@lists.php.net to get a copy of this message | ||
This is a function to convert byte offsets into (UTF-8) character offsets (this is reagardless of
whether you use /u modifier:
<?php
function mb_preg_match_all($ps_pattern, $ps_subject, &$pa_matches, $pn_flags =
PREG_PATTERN_ORDER, $pn_offset = 0, $ps_encoding = NULL) {
// WARNING! - All this function does is to correct offsets, nothing else:
//
if (is_null($ps_encoding))
$ps_encoding = mb_internal_encoding();
$pn_offset = strlen(mb_substr($ps_subject, 0, $pn_offset, $ps_encoding));
$ret = preg_match_all($ps_pattern, $ps_subject, $pa_matches, $pn_flags, $pn_offset);
if ($ret && ($pn_flags & PREG_OFFSET_CAPTURE))
foreach($pa_matches as &$ha_match)
foreach($ha_match as &$ha_match)
$ha_match[1] = mb_strlen(substr($ps_subject, 0, $ha_match[1]), $ps_encoding);
//
// (code is independent of PREG_PATTER_ORDER / PREG_SET_ORDER)
return $ret;
}
?>
----
Server IP: 83.138.144.80
Probable Submitter: 82.152.212.233
----
Manual Page -- http://www.php.net/manual/en/function.preg-match-all.php
Edit -- https://master.php.net/note/edit/71572
Del: integrated -- https://master.php.net/note/delete/71572/integrated
Del: useless -- https://master.php.net/note/delete/71572/useless
Del: bad code -- https://master.php.net/note/delete/71572/bad+code
Del: spam -- https://master.php.net/note/delete/71572/spam
Del: non-english -- https://master.php.net/note/delete/71572/non-english
Del: in docs -- https://master.php.net/note/delete/71572/in+docs
Del: other reasons-- https://master.php.net/note/delete/71572
Reject -- https://master.php.net/note/reject/71572
Search -- https://master.php.net/manage/user-notes.php