WP_Text_Diff_Renderer_Table::compute_string_distance()
Computes a number that is intended to reflect the "distance" between two strings.
Метод класса: WP_Text_Diff_Renderer_Table{}
Хуков нет.
Возвращает
int
.
Использование
$WP_Text_Diff_Renderer_Table = new WP_Text_Diff_Renderer_Table(); $WP_Text_Diff_Renderer_Table->compute_string_distance( $string1, $string2 );
- $string1(строка) (обязательный)
- -
- $string2(строка) (обязательный)
- -
Список изменений
С версии 2.6.0 | Введена. |
Код WP_Text_Diff_Renderer_Table::compute_string_distance() WP Text Diff Renderer Table::compute string distance WP 6.6.2
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 ); }