wp_text_diff

Advertisement

Summery Summery

Displays a human readable HTML representation of the difference between two strings.

Syntax Syntax

wp_text_diff( string $left_string, string $right_string, string|array $args = null )

Description Description

The Diff is available for getting the changes between versions. The output is HTML, so the primary use is for displaying the changes. If the two strings are equivalent, then an empty string will be returned.

Parameters Parameters

$left_string

(Required) "old" (left) version of string

$right_string

(Required) "new" (right) version of string

$args

(Optional) Associative array of options to pass to WP_Text_Diff_Renderer_Table().

  • 'title'
    (string) Titles the diff in a manner compatible with the output. Default empty.
  • 'title_left'
    (string) Change the HTML to the left of the title. Default empty.
  • 'title_right'
    (string) Change the HTML to the right of the title. Default empty.
  • 'show_split_view'
    (bool) True for split view (two columns), false for un-split view (single column). Default true.

Default value: null

Return Return

(string) Empty string if strings are equivalent or HTML with differences.

Source Source

File: wp-includes/pluggable.php

	 * Displays a human readable HTML representation of the difference between two strings.
	 *
	 * The Diff is available for getting the changes between versions. The output is
	 * HTML, so the primary use is for displaying the changes. If the two strings
	 * are equivalent, then an empty string will be returned.
	 *
	 * @since 2.6.0
	 *
	 * @see wp_parse_args() Used to change defaults to user defined settings.
	 * @uses Text_Diff
	 * @uses WP_Text_Diff_Renderer_Table
	 *
	 * @param string       $left_string  "old" (left) version of string
	 * @param string       $right_string "new" (right) version of string
	 * @param 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.
	 * }
	 * @return string Empty string if strings are equivalent or HTML with differences.
	 */
	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 '';
		}

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

Advertisement

Changelog Changelog

Changelog
Version Description
2.6.0 Introduced.

See also See also

  • wp_parse_args(): Used to change defaults to user defined settings.

Advertisement

Leave a Reply