コード例 #1
0
ファイル: kses.php プロジェクト: zoran180/wp_szf
/**
 * Finds all attributes of an HTML element.
 *
 * Does not modify input.  May return "evil" output.
 *
 * Based on wp_kses_split2() and wp_kses_attr()
 *
 * @since 4.2.3
 *
 * @param string $element HTML element/tag
 * @return array|bool List of attributes found in $element. Returns false on failure.
 */
function wp_kses_attr_parse($element)
{
    $valid = preg_match('%^(<\\s*)(/\\s*)?([a-zA-Z0-9]+\\s*)([^>]*)(>?)$%', $element, $matches);
    if (1 !== $valid) {
        return false;
    }
    $begin = $matches[1];
    $slash = $matches[2];
    $elname = $matches[3];
    $attr = $matches[4];
    $end = $matches[5];
    if ('' !== $slash) {
        // Closing elements do not get parsed.
        return false;
    }
    // Is there a closing XHTML slash at the end of the attributes?
    if (1 === preg_match('%\\s*/\\s*$%', $attr, $matches)) {
        $xhtml_slash = $matches[0];
        $attr = substr($attr, 0, -strlen($xhtml_slash));
    } else {
        $xhtml_slash = '';
    }
    // Split it
    $attrarr = wp_kses_hair_parse($attr);
    if (false === $attrarr) {
        return false;
    }
    // Make sure all input is returned by adding front and back matter.
    array_unshift($attrarr, $begin . $slash . $elname);
    array_push($attrarr, $xhtml_slash . $end);
    return $attrarr;
}
コード例 #2
0
ファイル: kses.php プロジェクト: plis197715/wordpress-develop
 /**
  * Test new function wp_kses_hair_parse().
  *
  * @dataProvider data_hair_parse
  */
 function test_hair_parse($input, $output)
 {
     return $this->assertEquals($output, wp_kses_hair_parse($input));
 }