• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
WordPress core a2z

WordPress core a2z

WordPress core only

  • Home
  • Plugins
  • Blocks
  • Shortcodes
  • APIs
  • Classes
  • Files
  • Hooks
  • Sitemap
  • Blog
Home / APIs / wp_text_diff() – Displays a human readable HTML representation of the difference between two strings.

You appear to be a bot. Output may be restricted

Description

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.

Usage

$string = wp_text_diff( $left_string, $right_string, $args );

Parameters

$left_string
( string ) required – "old" (left) version of string
$right_string
( string ) required – "new" (right) version of string
$args
( string|array ) optional – { Associative array of options to pass to WP_Text_Diff_Renderer_Table().
$title
( string ) optional – Titles the diff in a manner compatible with the output. Default empty.
$title_left
( string ) optional – Change the HTML to the left of the title. Default empty.
$title_right
( string ) optional – Change the HTML to the right of the title. Default empty.
$show_split_view
( bool ) optional – True for split view (two columns), false for un-split view (single column). Default true. }

Returns

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

Source

File name: wordpress/wp-includes/pluggable.php
Lines:

1 to 55 of 55
  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";

    if ( ! empty( $args['show_split_view'] ) ) {
      $r .= "<col class='content diffsplit left' /><col class='content diffsplit middle' /><col class='content diffsplit right' />";
    } else {
      $r .= "<col class='content' />";
    }

    if ( $args['title'] || $args['title_left'] || $args['title_right'] ) {
      $r .= '<thead>';
    }
    if ( $args['title'] ) {
      $r .= "<tr class='diff-title'><th colspan='4'>$args[title]</th></tr>\n";
    }
    if ( $args['title_left'] || $args['title_right'] ) {
      $r .= "<tr class='diff-sub-title'>\n";
      $r .= "\t<td></td><th>$args[title_left]</th>\n";
      $r .= "\t<td></td><th>$args[title_right]</th>\n";
      $r .= "</tr>\n";
    }
    if ( $args['title'] || $args['title_left'] || $args['title_right'] ) {
      $r .= "</thead>\n";
    }

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

    return $r;
  }
 

 View on GitHub View on Trac

Published: 25th November 2019 | Last updated: 2nd April 2020

Primary Sidebar

Information

Function name: wp_text_diff
Plugin ref: WordPress
Version: 5.6
Sourcefile: wp-includes/pluggable.php
File ref: wp-includes/pluggable.php
Deprecated?: No
API Letters: D,T,W

Footer

WP-a2z
WordPress core a2z
WordPress core only
WordPress 5.6
WordPress a2z
WordPress core a2z
Genesis Theme Framework a2z
Jetpack a2z
WordPress develop tests
Easy Digital Downloads a2z
WooCommerce a2z
Yoast SEO a2z
WordPress Blocks

Site:  core.wp-a2z.org
© Copyright WP-a2z 2014-2021. All rights reserved.


Website designed and developed by Herb Miller
Proudly powered by WordPress and oik plugins

  • Home
  • Blog
  • Sitemap
  • Sites