/** * Removes the @ symbol from a username in the body of the node. * * @param string username */ protected function invalidateUsername($username) { $this->_mixer->set('body', KHelperString::str_ireplace('@' . $username, $username, $this->_mixer->body)); }
/** * UTF-8 aware alternative to str_ireplace * * Case-insensitive version of str_replace * * @param string string to search * @param string existing string to replace * @param string new string to replace with * @param int optional count value to be passed by referene * @see http://www.php.net/str_ireplace */ public static function str_ireplace($search, $replace, $str, $count = NULL) { if (!is_array($search)) { $slen = strlen($search); $lendif = strlen($replace) - $slen; if ($slen == 0) { return $str; } $search = KHelperString::strtolower($search); $search = preg_quote($search, '/'); $lstr = KHelperString::strtolower($str); $i = 0; $matched = 0; while (preg_match('/(.*)' . $search . '/Us', $lstr, $matches)) { if ($i === $count) { break; } $mlen = strlen($matches[0]); $lstr = substr($lstr, $mlen); $str = substr_replace($str, $replace, $matched + strlen($matches[1]), $slen); $matched += $mlen + $lendif; $i++; } return $str; } else { foreach (array_keys($search) as $k) { if (is_array($replace)) { if (array_key_exists($k, $replace)) { $str = KHelperString::str_ireplace($search[$k], $replace[$k], $str, $count); } else { $str = KHelperString::str_ireplace($search[$k], '', $str, $count); } } else { $str = KHelperString::str_ireplace($search[$k], $replace, $str, $count); } } return $str; } }
/** * Return a sanitized version of a text which can be assigned to a javascript variable. * * @param string $text The text to sanitize * * @return string */ public function script($text) { return htmlspecialchars($this->getService('koowa:filter.string')->sanitize(KHelperString::str_ireplace(array("\r\n", "\n"), '', $text)), ENT_QUOTES); }