wp_text_diff

函式
wp_text_diff ( $left_string, $right_string, $args = null )
引數
  • (string) $left_string "old" (left) version of string.
    Required:
  • (string) $right_string "new" (right) version of string.
    Required:
  • (string|array) $args { Associative array of options to pass to WP_Text_Diff_Renderer_Table(). @type string $title Titles the diff in a manner compatible with the output. Default empty. @type string $title_left Change the HTML to the left of the title. Default empty. @type string $title_right Change the HTML to the right of the title. Default empty. @type bool $show_split_view True for split view (two columns), false for un-split view (single column). Default true. }
    Required:
    Default: null
返回值
  • (string) Empty string if strings are equivalent or HTML with differences.
相關
  • wp_parse_args()
定義位置
相關方法
wptexturizewp_style_ishuman_time_diffwp_set_lang_dirwp_get_sites
引入
2.6.0
棄用
-

wp_text_diff是一個比較兩個文字字串的函式,並返回一個代表它們之間差異的字串,並標明增加和刪除的內容。它用於顯示一個文章或頁面的不同修訂版本。

顯示兩個字串之間的差異的人類可讀的HTML表示。

Diff可用於獲取版本之間的變化。輸出是HTML,所以主要用於顯示變化。如果兩個字串是相等的,那麼將返回一個空字串。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function wp_text_diff( $left_string, $right_string, $args = null ) {
$defaults = array(
'title' => '',
'title_left' => '',
'title_right' => '',
'show_split_view' => true,
);
$args = wp_parse_args( $args, $defaults );
if ( ! class_exists( 'WP_Text_Diff_Renderer_Table', false ) ) {
require ABSPATH . WPINC . '/wp-diff.php';
}
$left_string = normalize_whitespace( $left_string );
$right_string = normalize_whitespace( $right_string );
$left_lines = explode( "n", $left_string );
$right_lines = explode( "n", $right_string );
$text_diff = new Text_Diff( $left_lines, $right_lines );
$renderer = new WP_Text_Diff_Renderer_Table( $args );
$diff = $renderer->render( $text_diff );
if ( ! $diff ) {
return '';
}
$is_split_view = ! empty( $args['show_split_view'] );
$is_split_view_class = $is_split_view ? ' is-split-view' : '';
$r = "<table class='diff$is_split_view_class'>n";
if ( $args['title'] ) {
$r .= "<caption class='diff-title'>$args[title]</caption>n";
}
if ( $args['title_left'] || $args['title_right'] ) {
$r .= '<thead>';
}
if ( $args['title_left'] || $args['title_right'] ) {
$th_or_td_left = empty( $args['title_left'] ) ? 'td' : 'th';
$th_or_td_right = empty( $args['title_right'] ) ? 'td' : 'th';
$r .= "<tr class='diff-sub-title'>n";
$r .= "t<$th_or_td_left>$args[title_left]</$th_or_td_left>n";
if ( $is_split_view ) {
$r .= "t<$th_or_td_right>$args[title_right]</$th_or_td_right>n";
}
$r .= "</tr>n";
}
if ( $args['title_left'] || $args['title_right'] ) {
$r .= "</thead>n";
}
$r .= "<tbody>n$diffn</tbody>n";
$r .= '</table>';
return $r;
}
endif;
function wp_text_diff( $left_string, $right_string, $args = null ) { $defaults = array( 'title' => '', 'title_left' => '', 'title_right' => '', 'show_split_view' => true, ); $args = wp_parse_args( $args, $defaults ); if ( ! class_exists( 'WP_Text_Diff_Renderer_Table', false ) ) { require ABSPATH . WPINC . '/wp-diff.php'; } $left_string = normalize_whitespace( $left_string ); $right_string = normalize_whitespace( $right_string ); $left_lines = explode( "n", $left_string ); $right_lines = explode( "n", $right_string ); $text_diff = new Text_Diff( $left_lines, $right_lines ); $renderer = new WP_Text_Diff_Renderer_Table( $args ); $diff = $renderer->render( $text_diff ); if ( ! $diff ) { return ''; } $is_split_view = ! empty( $args['show_split_view'] ); $is_split_view_class = $is_split_view ? ' is-split-view' : ''; $r = "<table class='diff$is_split_view_class'>n"; if ( $args['title'] ) { $r .= "<caption class='diff-title'>$args[title]</caption>n"; } if ( $args['title_left'] || $args['title_right'] ) { $r .= '<thead>'; } if ( $args['title_left'] || $args['title_right'] ) { $th_or_td_left = empty( $args['title_left'] ) ? 'td' : 'th'; $th_or_td_right = empty( $args['title_right'] ) ? 'td' : 'th'; $r .= "<tr class='diff-sub-title'>n"; $r .= "t<$th_or_td_left>$args[title_left]</$th_or_td_left>n"; if ( $is_split_view ) { $r .= "t<$th_or_td_right>$args[title_right]</$th_or_td_right>n"; } $r .= "</tr>n"; } if ( $args['title_left'] || $args['title_right'] ) { $r .= "</thead>n"; } $r .= "<tbody>n$diffn</tbody>n"; $r .= '</table>'; return $r; } endif;
function wp_text_diff( $left_string, $right_string, $args = null ) {
		$defaults = array(
			'title'           => '',
			'title_left'      => '',
			'title_right'     => '',
			'show_split_view' => true,
		);
		$args     = wp_parse_args( $args, $defaults );

		if ( ! class_exists( 'WP_Text_Diff_Renderer_Table', false ) ) {
			require ABSPATH . WPINC . '/wp-diff.php';
		}

		$left_string  = normalize_whitespace( $left_string );
		$right_string = normalize_whitespace( $right_string );

		$left_lines  = explode( "n", $left_string );
		$right_lines = explode( "n", $right_string );
		$text_diff   = new Text_Diff( $left_lines, $right_lines );
		$renderer    = new WP_Text_Diff_Renderer_Table( $args );
		$diff        = $renderer->render( $text_diff );

		if ( ! $diff ) {
			return '';
		}

		$is_split_view       = ! empty( $args['show_split_view'] );
		$is_split_view_class = $is_split_view ? ' is-split-view' : '';

		$r = "<table class='diff$is_split_view_class'>n";

		if ( $args['title'] ) {
			$r .= "<caption class='diff-title'>$args[title]</caption>n";
		}

		if ( $args['title_left'] || $args['title_right'] ) {
			$r .= '<thead>';
		}

		if ( $args['title_left'] || $args['title_right'] ) {
			$th_or_td_left  = empty( $args['title_left'] ) ? 'td' : 'th';
			$th_or_td_right = empty( $args['title_right'] ) ? 'td' : 'th';

			$r .= "<tr class='diff-sub-title'>n";
			$r .= "t<$th_or_td_left>$args[title_left]</$th_or_td_left>n";
			if ( $is_split_view ) {
				$r .= "t<$th_or_td_right>$args[title_right]</$th_or_td_right>n";
			}
			$r .= "</tr>n";
		}

		if ( $args['title_left'] || $args['title_right'] ) {
			$r .= "</thead>n";
		}

		$r .= "<tbody>n$diffn</tbody>n";
		$r .= '</table>';

		return $r;
	}
endif;

常見問題

FAQs
檢視更多 >