1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
<?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 ); } }
|