本文整理汇总了PHP中CakeText::cleanInsert方法的典型用法代码示例。如果您正苦于以下问题:PHP CakeText::cleanInsert方法的具体用法?PHP CakeText::cleanInsert怎么用?PHP CakeText::cleanInsert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CakeText
的用法示例。
在下文中一共展示了CakeText::cleanInsert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: cleanInsert
/**
* Cleans up a CakeText::insert() formatted string with given $options depending on the 'clean' key in
* $options. The default method used is text but html is also available. The goal of this function
* is to replace all whitespace and unneeded markup around placeholders that did not get replaced
* by CakeText::insert().
*
* @param string $str CakeText to clean.
* @param array $options Options list.
* @return string
* @see CakeText::insert()
*/
public static function cleanInsert($str, $options)
{
$clean = $options['clean'];
if (!$clean) {
return $str;
}
if ($clean === true) {
$clean = array('method' => 'text');
}
if (!is_array($clean)) {
$clean = array('method' => $options['clean']);
}
switch ($clean['method']) {
case 'html':
$clean = array_merge(array('word' => '[\\w,.]+', 'andText' => true, 'replacement' => ''), $clean);
$kleenex = sprintf('/[\\s]*[a-z]+=(")(%s%s%s[\\s]*)+\\1/i', preg_quote($options['before'], '/'), $clean['word'], preg_quote($options['after'], '/'));
$str = preg_replace($kleenex, $clean['replacement'], $str);
if ($clean['andText']) {
$options['clean'] = array('method' => 'text');
$str = CakeText::cleanInsert($str, $options);
}
break;
case 'text':
$clean = array_merge(array('word' => '[\\w,.]+', 'gap' => '[\\s]*(?:(?:and|or)[\\s]*)?', 'replacement' => ''), $clean);
$kleenex = sprintf('/(%s%s%s%s|%s%s%s%s)/', preg_quote($options['before'], '/'), $clean['word'], preg_quote($options['after'], '/'), $clean['gap'], $clean['gap'], preg_quote($options['before'], '/'), $clean['word'], preg_quote($options['after'], '/'));
$str = preg_replace($kleenex, $clean['replacement'], $str);
break;
}
return $str;
}
示例2: testCleanInsert
/**
* test Clean Insert
*
* @return void
*/
public function testCleanInsert()
{
$result = CakeText::cleanInsert(':incomplete', array('clean' => true, 'before' => ':', 'after' => ''));
$this->assertEquals('', $result);
$result = CakeText::cleanInsert(':incomplete', array('clean' => array('method' => 'text', 'replacement' => 'complete'), 'before' => ':', 'after' => ''));
$this->assertEquals('complete', $result);
$result = CakeText::cleanInsert(':in.complete', array('clean' => true, 'before' => ':', 'after' => ''));
$this->assertEquals('', $result);
$result = CakeText::cleanInsert(':in.complete and', array('clean' => true, 'before' => ':', 'after' => ''));
$this->assertEquals('', $result);
$result = CakeText::cleanInsert(':in.complete or stuff', array('clean' => true, 'before' => ':', 'after' => ''));
$this->assertEquals('stuff', $result);
$result = CakeText::cleanInsert('<p class=":missing" id=":missing">Text here</p>', array('clean' => 'html', 'before' => ':', 'after' => ''));
$this->assertEquals('<p>Text here</p>', $result);
}