wp_replace_in_html_tags() – Replace characters or phrases within HTML elements only.

You appear to be a bot. Output may be restricted

Description

Replaces characters or phrases within HTML elements only.

Usage

$string = wp_replace_in_html_tags( $haystack, $replace_pairs );

Parameters

$haystack
( string ) required – The text which has to be formatted.
$replace_pairs
( array ) required – In the form array('from' => 'to', …).

Returns

string The formatted text.

Source

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

1 to 41 of 41
function wp_replace_in_html_tags( $haystack, $replace_pairs ) {
  // Find all elements.
  $textarr = wp_html_split( $haystack );
  $changed = false;

  // Optimize when searching for one item.
  if ( 1 === count( $replace_pairs ) ) {
    // Extract $needle and $replace.
    foreach ( $replace_pairs as $needle => $replace ) {
    }

    // Loop through delimiters (elements) only.
    for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
      if ( false !== strpos( $textarr[ $i ], $needle ) ) {
        $textarr[ $i ] = str_replace( $needle, $replace, $textarr[ $i ] );
        $changed       = true;
      }
    }
  } else {
    // Extract all $needles.
    $needles = array_keys( $replace_pairs );

    // Loop through delimiters (elements) only.
    for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
      foreach ( $needles as $needle ) {
        if ( false !== strpos( $textarr[ $i ], $needle ) ) {
          $textarr[ $i ] = strtr( $textarr[ $i ], $replace_pairs );
          $changed       = true;
          // After one strtr() break out of the foreach loop and look at next element.
          break;
        }
      }
    }
  }

  if ( $changed ) {
    $haystack = implode( $textarr );
  }

  return $haystack;
}
 

 View on GitHub View on Trac