wp_remove_surrounding_empty_script_tags( string $contents ): string
Removes leading and trailing _empty_ script tags.
Contents
Description
This is a helper meant to be used for literal script tag construction within wp_get_inline_script_tag()
or wp_print_inline_script_tag()
.
It removes the literal values of "" and "" from around an inline script after trimming whitespace. Typlically this is used in conjunction with output buffering, where ob_get_clean()
is passed as the $contents
argument.
Example:
// Strips exact literal empty SCRIPT tags.
$js = '<script>sayHello();</script>;
'sayHello();' === wp_remove_surrounding_empty_script_tags( $js );
// Otherwise if anything is different it warns in the JS console.
$js = '<script type="text/javascript">console.log( "hi" );</script>';
'console.error( ... )' === wp_remove_surrounding_empty_script_tags( $js );
See also
Parameters
-
$contents
string Required -
Script body with manually created SCRIPT tag literals.
Return
string Script body without surrounding script tag literals, or original contents if both exact literals aren't present.
Source
File: wp-includes/script-loader.php
.
View all references
function wp_remove_surrounding_empty_script_tags( $contents ) {
$contents = trim( $contents );
$opener = '<SCRIPT>';
$closer = '</SCRIPT>';
if (
strlen( $contents ) > strlen( $opener ) + strlen( $closer ) &&
strtoupper( substr( $contents, 0, strlen( $opener ) ) ) === $opener &&
strtoupper( substr( $contents, -strlen( $closer ) ) ) === $closer
) {
return substr( $contents, strlen( $opener ), -strlen( $closer ) );
} else {
$error_message = __( 'Expected string to start with script tag (without attributes) and end with script tag, with optional whitespace.' );
_doing_it_wrong( __FUNCTION__, $error_message, '6.4' );
return sprintf( 'console.error(%s)', wp_json_encode( __( 'Function wp_remove_surrounding_empty_script_tags() used incorrectly in PHP.' ) . ' ' . $error_message ) );
}
}
Changelog
Version | Description |
---|---|
6.4.0 | Introduced. |