HEX
Server: nginx/1.27.1
System: Linux in-3 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User: ivenus-clone (3297)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v4513/ivenusin/public_html/wp-content/plugins/amp/includes/utils/class-amp-html-utils.php
<?php
/**
 * Class AMP_HTML_Utils
 *
 * @package AMP
 */

/**
 * Class with static HTML utility methods.
 *
 * @internal
 */
class AMP_HTML_Utils {

	/**
	 * Generates HTML markup for a given tag, attributes and content.
	 *
	 * @param string $tag_name   Tag name.
	 * @param array  $attributes Associative array of $attribute => $value pairs.
	 * @param string $content    Inner content for the generated node.
	 * @return string HTML markup.
	 */
	public static function build_tag( $tag_name, $attributes = [], $content = '' ) {
		$attr_string = self::build_attributes_string( $attributes );
		return sprintf( '<%1$s %2$s>%3$s</%1$s>', sanitize_key( $tag_name ), $attr_string, $content );
	}

	/**
	 * Generates a HTML attributes string from given attributes.
	 *
	 * @param array $attributes Associative array of $attribute => $value pairs.
	 * @return string HTML attributes string.
	 */
	public static function build_attributes_string( $attributes ) {
		$string = [];
		foreach ( $attributes as $name => $value ) {
			if ( '' === $value ) {
				$string[] = sprintf( '%s', sanitize_key( $name ) );
			} else {
				$string[] = sprintf( '%s="%s"', sanitize_key( $name ), esc_attr( $value ) );
			}
		}
		return implode( ' ', $string );
	}

	/**
	 * Checks whether the given string is valid JSON.
	 *
	 * @param string $data String hopefully containing JSON.
	 * @return bool True if the string is valid JSON, false otherwise.
	 */
	public static function is_valid_json( $data ) {
		json_decode( $data );
		return ( json_last_error() === JSON_ERROR_NONE );
	}
}