diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
| commit | 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 (patch) | |
| tree | f7453d7dd5cbaaab246e23810b02d3edf1e451be /srcs/wordpress/wp-includes/class-wp-matchesmapregex.php | |
| parent | c59bdcf77c50cbe89b4a93782cdd6d9e7532080e (diff) | |
| download | ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.gz ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.bz2 ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.zip | |
Added wordpress
Diffstat (limited to 'srcs/wordpress/wp-includes/class-wp-matchesmapregex.php')
| -rw-r--r-- | srcs/wordpress/wp-includes/class-wp-matchesmapregex.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-includes/class-wp-matchesmapregex.php b/srcs/wordpress/wp-includes/class-wp-matchesmapregex.php new file mode 100644 index 0000000..86e3889 --- /dev/null +++ b/srcs/wordpress/wp-includes/class-wp-matchesmapregex.php @@ -0,0 +1,89 @@ +<?php +/** + * WP_MatchesMapRegex helper class + * + * @package WordPress + * @since 4.7.0 + */ + +/** + * Helper class to remove the need to use eval to replace $matches[] in query strings. + * + * @since 2.9.0 + */ +class WP_MatchesMapRegex { + /** + * store for matches + * + * @var array + */ + private $_matches; + + /** + * store for mapping result + * + * @var string + */ + public $output; + + /** + * subject to perform mapping on (query string containing $matches[] references + * + * @var string + */ + private $_subject; + + /** + * regexp pattern to match $matches[] references + * + * @var string + */ + public $_pattern = '(\$matches\[[1-9]+[0-9]*\])'; // magic number + + /** + * constructor + * + * @param string $subject subject if regex + * @param array $matches data to use in map + */ + public function __construct( $subject, $matches ) { + $this->_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 = intval( substr( $matches[0], 9, -1 ) ); + return ( isset( $this->_matches[ $index ] ) ? urlencode( $this->_matches[ $index ] ) : '' ); + } +} |
