escapeRegexReplacement( $replacement ); return preg_replace( $pattern, $replacement, $subject ); } /** * Returns string after converting it to lowercase. * * @since 4.0.13 * * @param string $string The original string. * @return string The string converted to lowercase. */ public function toLowercase( $string ) { return function_exists( 'mb_strtolower' ) ? mb_strtolower( $string, get_option( 'blog_charset' ) ) : strtolower( $string ); } /** * Checks if the given string contains the given substring. * * @since 4.1.0.2 * * @param string $stack The stack. * @param string $needle The needle. * @param int $offset The offset. * @return int|bool The index of the first occurence or false. */ public function stringContains( $stack, $needle, $offset = 0 ) { return function_exists( 'mb_strpos' ) ? mb_strpos( $stack, $needle, $offset, get_option( 'blog_charset' ) ) : strpos( $stack, $needle, $offset ); } /** * Check if a string is JSON encoded or not. * * @since 4.1.2 * * @param string $string The string to check. * @return bool True if it is JSON or false if not. */ public function isJsonString( $string ) { if ( ! is_string( $string ) ) { return false; } json_decode( $string ); // Return a boolean whether or not the last error matches. return json_last_error() === JSON_ERROR_NONE; } /** * Strips punctuation from a given string. * * @since 4.0.0 * * @param string $string The string. * @return string The string without punctuation. */ public function stripPunctuation( $string ) { $string = preg_replace( '#\p{P}#u', '', $string ); // Trim both internal and external whitespace. return preg_replace( '/\s\s+/u', ' ', trim( $string ) ); } /** * Returns the string after it is encoded with htmlspecialchars(). * * @since 4.0.0 * * @param string $string The string to encode. * @return string The encoded string. */ public function encodeOutputHtml( $string ) { return htmlspecialchars( $string, ENT_COMPAT | ENT_HTML401, get_option( 'blog_charset' ), false ); } /** * Returns the string after all HTML entities have been decoded. * * @since 4.0.0 * * @param string $string The string to decode. * @return string The decoded string. */ public function decodeHtmlEntities( $string ) { return html_entity_decode( (string) $string, ENT_QUOTES ); } /** * Returns the given JSON formatted data tags as a comma separated list with their values instead. * * @since 4.1.0 * * @param string $tags The JSON formatted data tags. * @return string The comma separated values. */ public function jsonTagsToCommaSeparatedList( $tags ) { $tags = json_decode( $tags ); $values = []; foreach ( $tags as $k => $tag ) { $values[ $k ] = $tag->value; } return implode( ',', $values ); } }