/** * Note: Try to avoid using this function. Use api_preg_replace() with Perl-compatible regular expression syntax. * * Scans string for matches to pattern, then replaces the matched text with replacement, ignoring case, with extended multibyte support. * By default this function uses the platform character set. * @param string $pattern The regular expression pattern. * @param string $replacement The replacement text. * @param string $string The searched string. * @param string $option (optional) Matching condition. * If i is specified for the matching condition parameter, the case will be ignored. * If x is specified, white space will be ignored. * If m is specified, match will be executed in multiline mode and line break will be included in '.'. * If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. * If e is specified, replacement string will be evaluated as PHP expression. * @return mixed The modified string is returned. If no matches are found within the string, then it will be returned unchanged. FALSE will be returned on error. * This function is aimed at replacing the functions eregi_replace() and mb_eregi_replace() for human-language strings. * @link http://php.net/manual/en/function.eregi-replace * @link http://php.net/manual/en/function.mb-eregi-replace */ function api_eregi_replace($pattern, $replacement, $string, $option = null) { $encoding = _api_mb_regex_encoding(); if (_api_mb_supports($encoding)) { if (is_null($option)) { return @mb_eregi_replace($pattern, $replacement, $string); } return @mb_eregi_replace($pattern, $replacement, $string, $option); } if (MBSTRING_INSTALLED && api_is_encoding_supported($encoding)) { _api_mb_regex_encoding('UTF-8'); if (is_null($option)) { $result = api_utf8_decode(@mb_eregi_replace(api_utf8_encode($pattern, $encoding), api_utf8_encode($replacement, $encoding), api_utf8_encode($string, $encoding)), $encoding); } else { $result = api_utf8_decode(@mb_eregi_replace(api_utf8_encode($pattern, $encoding), api_utf8_encode($replacement, $encoding), api_utf8_encode($string, $encoding), $option), $encoding); } _api_mb_regex_encoding($encoding); return $result; } return eregi_replace($pattern, $replacement, $string); }
/** * Note: Try to avoid using this function. Use api_preg_split() with Perl-compatible regular expression syntax. * * Splits a multibyte string using regular expression pattern and returns the result as an array. * By default this function uses the platform character set. * @param string $pattern The regular expression pattern. * @param string $string The string being split. * @param int $limit (optional) If this optional parameter $limit is specified, the string will be split in $limit elements as maximum. * @return array The result as an array. * This function is aimed at replacing the functions split() and mb_split() for human-language strings. * @link http://php.net/manual/en/function.split * @link http://php.net/manual/en/function.mb-split */ function api_split($pattern, $string, $limit = null) { $encoding = _api_mb_regex_encoding(); if (_api_mb_supports($encoding)) { if (is_null($limit)) { return @mb_split($pattern, $string); } return @mb_split($pattern, $string, $limit); } if (MBSTRING_INSTALLED && api_is_encoding_supported($encoding)) { global $_api_encoding; $_api_encoding = $encoding; _api_mb_regex_encoding('UTF-8'); if (is_null($limit)) { $result = @mb_split(api_utf8_encode($pattern, $encoding), api_utf8_encode($string, $encoding)); } else { $result = @mb_split(api_utf8_encode($pattern, $encoding), api_utf8_encode($string, $encoding), $limit); } $result = _api_array_utf8_decode($result); _api_mb_regex_encoding($encoding); return $result; } if (is_null($limit)) { return split($pattern, $string); } return split($pattern, $string, $limit); }