Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/htaccess.back/src/Filter/ |
| [Home] [System Details] [Kill Me] |
<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
namespace Joomla\CMS\Filter;
defined('JPATH_PLATFORM') or die;
use Joomla\Filter\OutputFilter as BaseOutputFilter;
use Joomla\String\StringHelper;
use Joomla\CMS\Language\Language;
/**
* OutputFilter
*
* @since 1.7.0
*/
class OutputFilter extends BaseOutputFilter
{
/**
* This method processes a string and replaces all instances of & with
& in links only.
*
* @param string $input String to process
*
* @return string Processed string
*
* @since 1.7.0
*/
public static function linkXHTMLSafe($input)
{
$regex =
'href="([^"]*(&(amp;){0})[^"]*)*?"';
return preg_replace_callback("#$regex#i",
array('\\Joomla\\CMS\\Filter\\OutputFilter',
'_ampReplaceCallback'), $input);
}
/**
* This method processes a string and escapes it for use in JavaScript
*
* @param string $string String to process
*
* @return string Processed text
*/
public static function stringJSSafe($string)
{
$chars = preg_split('//u', $string, null, PREG_SPLIT_NO_EMPTY);
$new_str = '';
foreach ($chars as $chr)
{
$code = str_pad(dechex(StringHelper::ord($chr)), 4, '0',
STR_PAD_LEFT);
if (strlen($code) < 5)
{
$new_str .= '\\u' . $code;
}
else
{
$new_str .= '\\u{' . $code . '}';
}
}
return $new_str;
}
/**
* This method processes a string and replaces all accented UTF-8
characters by unaccented
* ASCII-7 "equivalents", whitespaces are replaced by hyphens
and the string is lowercase.
*
* @param string $string String to process
* @param string $language Language to transilterate to
*
* @return string Processed string
*
* @since 1.7.0
*/
public static function stringURLSafe($string, $language = '')
{
// Remove any '-' from the string since they will be used as
concatenaters
$str = str_replace('-', ' ', $string);
// Transliterate on the language requested (fallback to current language
if not specified)
$lang = $language == '' || $language == '*' ?
\JFactory::getLanguage() : Language::getInstance($language);
$str = $lang->transliterate($str);
// Trim white spaces at beginning and end of alias and make lowercase
$str = trim(StringHelper::strtolower($str));
// Remove any duplicate whitespace, and ensure all characters are
alphanumeric
$str = preg_replace('/(\s|[^A-Za-z0-9\-])+/', '-',
$str);
// Trim dashes at beginning and end of alias
$str = trim($str, '-');
return $str;
}
/**
* Callback method for replacing & with & in a string
*
* @param string $m String to process
*
* @return string Replaced string
*
* @since 3.5
*/
public static function ampReplaceCallback($m)
{
$rx = '&(?!amp;)';
return preg_replace('#' . $rx . '#',
'&', $m[0]);
}
/**
* Callback method for replacing & with & in a string
*
* @param string $m String to process
*
* @return string Replaced string
*
* @since 1.7.0
* @deprecated 4.0 Use OutputFilter::ampReplaceCallback() instead
*/
public static function _ampReplaceCallback($m)
{
return static::ampReplaceCallback($m);
}
}