prep_atom_text_construct

函数
prep_atom_text_construct ( $data )
参数
  • (string) $data Input string.
    Required:
返回值
  • (array) array(type, value)
定义位置
相关方法
_deprecated_constructorget_attachment_icon_srcatom_site_iconget_the_contentwp_update_term_count
引入
2.5.0
弃用
-

prep_atom_text_construct函数是WordPress的一个函数,用于准备显示Atom文本结构。它用于格式化Atom feed中的文本内容,通常用于过滤器挂钩。

确定一串数据的类型,并对数据进行格式化。

根据RFC 4287第3.1节,告诉该类型是文本、HTML还是XHTML。

在WordPress的情况下,文本被定义为不包含标记。
XHTML被定义为””形成良好的””,而HTML是标签汤(即其余的)。

根据第3.1.1.3节,容器div标签被添加到XHTML值中。

function prep_atom_text_construct( $data ) {
	if ( strpos( $data, '<' ) === false && strpos( $data, '&' ) === false ) {
		return array( 'text', $data );
	}

	if ( ! function_exists( 'xml_parser_create' ) ) {
		trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );

		return array( 'html', "<![CDATA[$data]]>" );
	}

	$parser = xml_parser_create();
	xml_parse( $parser, '<div>' . $data . '</div>', true );
	$code = xml_get_error_code( $parser );
	xml_parser_free( $parser );
	unset( $parser );

	if ( ! $code ) {
		if ( strpos( $data, '<' ) === false ) {
			return array( 'text', $data );
		} else {
			$data = "<div xmlns='http://www.w3.org/1999/xhtml'>$data</div>";
			return array( 'xhtml', $data );
		}
	}

	if ( strpos( $data, ']]>' ) === false ) {
		return array( 'html', "<![CDATA[$data]]>" );
	} else {
		return array( 'html', htmlspecialchars( $data ) );
	}
}

常见问题

FAQs
查看更多 >