note 89154 deleted from function.preg-match-all by thiago

From: Date: Tue, 24 Feb 2009 15:17:24 +0000
Subject: note 89154 deleted from function.preg-match-all by thiago
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-151071@lists.php.net to get a copy of this message
Note Submitter: bzz ---- chuckie's mb_preg_match_all() does not work if mbstring.func_overload is enabled for string functions. Here is the corrected version: <?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 = mb_strlen(mb_substr($ps_subject, 0, $pn_offset, $ps_encoding), 'ISO-8859-1'); $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(mb_substr($ps_subject, 0, $ha_match[1], 'ISO-8859-1'), $ps_encoding); // // (code is independent of PREG_PATTER_ORDER / PREG_SET_ORDER) return $ret; } ?>

« previous php.notes (#151071) next »