WireTextTools::findReplaceEscapeChars() method

Find escaped characters in $str, replace them with a placeholder, and return the placeholders

Usage

Available since version 3.0.162.

Example

// 1. Escape certain chars in a string that you want to survive some processing:
$str = 'Hello \*world\* foo \"bar\" baz';

// 2. Use this method to find escape chars and replace them temporarily:
$a = $sanitizer->getTextTools()->findReplaceEscapeChars($str, [ '*', '"' ]);

// 3. Process string with anything that you want NOT to see chars that were escaped:
$str = some_function_that_processes_the_string($str);

// 4. Do this to restore the escaped chars (restored without backslashes by default):
$str = str_replace(array_keys($a), array_values($a), $str); 

Usage

// basic usage
$array = $wireTextTools->findReplaceEscapeChars($str, array $escapeChars);

// usage with all arguments
$array = $wireTextTools->findReplaceEscapeChars($str, array $escapeChars, array $options = []);

Arguments

NameType(s)Description
str
escapeCharsarray

Array of chars you want to escape i.e. [ '*', '[', ']', '(', ')', '`', '_', '\', '"' ]

options (optional)array

Options to modify behavior:

  • escapePrefix (string): Character used to escape another character (default is backslash).
  • restoreEscape (bool): Should returned array also include the escape prefix, so escapes are restored? (default=false)
  • gluePrefix (string): Prefix for placeholders we substitute for escaped characters (default='{ESC')
  • glueSuffix (string): Suffix for placeholders we substitute for escaped characters (default='}')
  • unescapeUnknown (bool): If we come across escaped char not in your $escapeChars list, unescape it? (default=false)
  • removeUnknown (bool): If we come across escaped char not in your $escapeChars list, remove the escape and char? (default=false)

Return value

array

Returns assoc array where keys are placeholders substituted in $str and values are escaped characters.


WireTextTools methods and properties

API reference based on ProcessWire core version 3.0.244

Latest news

  • ProcessWire Weekly #560
    In the 560th issue of ProcessWire Weekly we'll check out the latest core updates, cover newly released ProcessWire modules, and more. Read on!
    Weekly.pw / 1 February 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.