Used By
Used By | Description |
---|---|
wp-includes/class-wp-text-diff-renderer-table.php: WP_Text_Diff_Renderer_Table::interleave_changed_lines() | Takes changed blocks and matches which rows in orig turned into which rows in final. |
Computes a number that is intended to reflect the “distance” between two strings.
(string) (Required)
(string) (Required)
(int)
File: wp-includes/class-wp-text-diff-renderer-table.php
public function compute_string_distance( $string1, $string2 ) { // Use an md5 hash of the strings for a count cache, as it's fast to generate, and collisions aren't a concern. $count_key1 = md5( $string1 ); $count_key2 = md5( $string2 ); // Cache vectors containing character frequency for all chars in each string. if ( ! isset( $this->count_cache[ $count_key1 ] ) ) { $this->count_cache[ $count_key1 ] = count_chars( $string1 ); } if ( ! isset( $this->count_cache[ $count_key2 ] ) ) { $this->count_cache[ $count_key2 ] = count_chars( $string2 ); } $chars1 = $this->count_cache[ $count_key1 ]; $chars2 = $this->count_cache[ $count_key2 ]; $difference_key = md5( implode( ',', $chars1 ) . ':' . implode( ',', $chars2 ) ); if ( ! isset( $this->difference_cache[ $difference_key ] ) ) { // L1-norm of difference vector. $this->difference_cache[ $difference_key ] = array_sum( array_map( array( $this, 'difference' ), $chars1, $chars2 ) ); } $difference = $this->difference_cache[ $difference_key ]; // $string1 has zero length? Odd. Give huge penalty by not dividing. if ( ! $string1 ) { return $difference; } // Return distance per character (of string1). return $difference / strlen( $string1 ); }
Version | Description |
---|---|
2.6.0 | Introduced. |
© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_text_diff_renderer_table/compute_string_distance