Cleans up a String::insert() formatted string with given $options depending
on the 'clean' option. The goal of this function is to replace all whitespace
and unneeded mark-up around place-holders that did not get replaced by String::insert().
public static clean ( string $str, array $options = [] ) : string | ||
$str | string | The string to clean. |
$options | array | Available options are: - `'after'`: characters marking the end of targeted substring. - `'andText'`: (defaults to `true`). - `'before'`: characters marking the start of targeted substring. - `'clean'`: `true` or an array of clean options: - `'gap'`: Regular expression matching gaps. - `'method'`: Either `'text'` or `'html'` (defaults to `'text'`). - `'replacement'`: String to use for cleaned substrings (defaults to `''`). - `'word'`: Regular expression matching words. |
Результат | string | The cleaned string. |
/** * test Clean Insert * * @return void */ public function testCleanInsert() { $result = String::clean(':incomplete', array('clean' => true, 'before' => ':', 'after' => '')); $this->assertEqual('', $result); $result = String::clean(':incomplete', array('clean' => array('method' => 'text', 'replacement' => 'complete'), 'before' => ':', 'after' => '')); $this->assertEqual('complete', $result); $result = String::clean(':in.complete', array('clean' => true, 'before' => ':', 'after' => '')); $this->assertEqual('', $result); $result = String::clean(':in.complete and', array('clean' => true, 'before' => ':', 'after' => '')); $this->assertEqual('', $result); $result = String::clean(':in.complete or stuff', array('clean' => true, 'before' => ':', 'after' => '')); $this->assertEqual('stuff', $result); $result = String::clean('<p class=":missing" id=":missing">Text here</p>', array('clean' => 'html', 'before' => ':', 'after' => '')); $this->assertEqual('<p>Text here</p>', $result); $string = ':a 2 3'; $result = String::clean($string, array('clean' => true, 'before' => ':', 'after' => '')); $this->assertEqual('2 3', $result); $result = String::clean($string, array('clean' => false, 'before' => ':', 'after' => '')); $this->assertEqual($string, $result); }