From a415c29efee45520ae252d2aa28f1083a521cd7b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:56:49 +0200 Subject: Adding upstream version 6.4.3+dfsg1. Signed-off-by: Daniel Baumann --- wp-includes/class-wp-matchesmapregex.php | 90 ++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 wp-includes/class-wp-matchesmapregex.php (limited to 'wp-includes/class-wp-matchesmapregex.php') diff --git a/wp-includes/class-wp-matchesmapregex.php b/wp-includes/class-wp-matchesmapregex.php new file mode 100644 index 0000000..558bd98 --- /dev/null +++ b/wp-includes/class-wp-matchesmapregex.php @@ -0,0 +1,90 @@ +_subject = $subject; + $this->_matches = $matches; + $this->output = $this->_map(); + } + + /** + * Substitute substring matches in subject. + * + * static helper function to ease use + * + * @param string $subject subject + * @param array $matches data used for substitution + * @return string + */ + public static function apply( $subject, $matches ) { + $oSelf = new WP_MatchesMapRegex( $subject, $matches ); + return $oSelf->output; + } + + /** + * do the actual mapping + * + * @return string + */ + private function _map() { + $callback = array( $this, 'callback' ); + return preg_replace_callback( $this->_pattern, $callback, $this->_subject ); + } + + /** + * preg_replace_callback hook + * + * @param array $matches preg_replace regexp matches + * @return string + */ + public function callback( $matches ) { + $index = (int) substr( $matches[0], 9, -1 ); + return ( isset( $this->_matches[ $index ] ) ? urlencode( $this->_matches[ $index ] ) : '' ); + } +} -- cgit v1.2.3