Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe SimplePie_Sanitize

Liste de tous les membres

Fonctions membres publiques

 remove_div ($enable=true)
 set_image_handler ($page=false)
 pass_cache_data ($enable_cache=true, $cache_location= './cache', $cache_name_function= 'md5', $cache_class= 'SimplePie_Cache')
 pass_file_data ($file_class= 'SimplePie_File', $timeout=10, $useragent= '', $force_fsockopen=false)
 strip_htmltags ($tags=array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
 encode_instead_of_strip ($encode=false)
 strip_attributes ($attribs=array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
 strip_comments ($strip=false)
 set_output_encoding ($encoding= 'UTF-8')
 set_url_replacements ($element_attribute=array('a'=> 'href', 'area'=> 'href', 'blockquote'=> 'cite', 'del'=> 'cite', 'form'=> 'action', 'img'=> array('longdesc', 'src'), 'input'=> 'src', 'ins'=> 'cite', 'q'=> 'cite'))
 sanitize ($data, $type, $base= '')
 replace_urls ($data, $tag, $attributes)
 do_strip_htmltags ($match)

Attributs publics

 $base
 $remove_div = true
 $image_handler = ''
 $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')
 $encode_instead_of_strip = false
 $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc')
 $strip_comments = false
 $output_encoding = 'UTF-8'
 $enable_cache = true
 $cache_location = './cache'
 $cache_name_function = 'md5'
 $cache_class = 'SimplePie_Cache'
 $file_class = 'SimplePie_File'
 $timeout = 10
 $useragent = ''
 $force_fsockopen = false
 $replace_url_attributes

Description détaillée

A faire:
Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags

Définition à la ligne 14655 du fichier simplepie.php.


Documentation des fonctions membres

SimplePie_Sanitize::do_strip_htmltags (   $match)

Définition à la ligne 14981 du fichier simplepie.php.

{
{
if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
{
$match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
$match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
return "<$match[1]$match[2]>$match[3]</$match[1]>";
}
else
{
return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
}
}
elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
{
return $match[4];
}
else
{
return '';
}
}
SimplePie_Sanitize::encode_instead_of_strip (   $encode = false)

Définition à la ligne 14771 du fichier simplepie.php.

{
$this->encode_instead_of_strip = (bool) $encode;
}
SimplePie_Sanitize::pass_cache_data (   $enable_cache = true,
  $cache_location = './cache',
  $cache_name_function = 'md5',
  $cache_class = 'SimplePie_Cache' 
)

Définition à la ligne 14706 du fichier simplepie.php.

{
if (isset($enable_cache))
{
$this->enable_cache = (bool) $enable_cache;
}
{
$this->cache_location = (string) $cache_location;
}
{
$this->cache_name_function = (string) $cache_name_function;
}
{
$this->cache_class = (string) $cache_class;
}
}
SimplePie_Sanitize::pass_file_data (   $file_class = 'SimplePie_File',
  $timeout = 10,
  $useragent = '',
  $force_fsockopen = false 
)

Définition à la ligne 14729 du fichier simplepie.php.

{
{
$this->file_class = (string) $file_class;
}
if ($timeout)
{
$this->timeout = (string) $timeout;
}
{
$this->useragent = (string) $useragent;
}
{
$this->force_fsockopen = (string) $force_fsockopen;
}
}
SimplePie_Sanitize::remove_div (   $enable = true)

Définition à la ligne 14689 du fichier simplepie.php.

{
$this->remove_div = (bool) $enable;
}
SimplePie_Sanitize::replace_urls (   $data,
  $tag,
  $attributes 
)

Définition à la ligne 14951 du fichier simplepie.php.

Références SimplePie_Misc\absolutize_url(), SimplePie_Misc\element_implode(), et SimplePie_Misc\get_element().

{
if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
{
$elements = SimplePie_Misc::get_element($tag, $data);
foreach ($elements as $element)
{
if (is_array($attributes))
{
foreach ($attributes as $attribute)
{
if (isset($element['attribs'][$attribute]['data']))
{
$element['attribs'][$attribute]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attribute]['data'], $this->base);
$new_element = SimplePie_Misc::element_implode($element);
$data = str_replace($element['full'], $new_element, $data);
$element['full'] = $new_element;
}
}
}
elseif (isset($element['attribs'][$attributes]['data']))
{
$element['attribs'][$attributes]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attributes]['data'], $this->base);
$data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data);
}
}
}
return $data;
}

+ Voici le graphe d'appel pour cette fonction :

SimplePie_Sanitize::sanitize (   $data,
  $type,
  $base = '' 
)

Définition à la ligne 14818 du fichier simplepie.php.

Références SimplePie_Misc\absolutize_url(), SimplePie_Misc\change_encoding(), SimplePie_Misc\element_implode(), SimplePie_Misc\get_element(), SIMPLEPIE_CONSTRUCT_BASE64, SIMPLEPIE_CONSTRUCT_HTML, SIMPLEPIE_CONSTRUCT_IRI, SIMPLEPIE_CONSTRUCT_MAYBE_HTML, SIMPLEPIE_CONSTRUCT_TEXT, SIMPLEPIE_CONSTRUCT_XHTML, SIMPLEPIE_FILE_SOURCE_REMOTE, SIMPLEPIE_PCRE_HTML_ATTRIBUTE, SIMPLEPIE_PCRE_XML_ATTRIBUTE, et SimplePie_Misc\strip_comments().

{
$data = trim($data);
if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
{
{
if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
{
}
else
{
}
}
{
$data = base64_decode($data);
}
{
if ($this->remove_div)
{
$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
$data = preg_replace('/<\/div>$/', '', $data);
}
else
{
$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
}
}
if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
{
// Strip comments
if ($this->strip_comments)
{
}
// Strip out HTML tags and attributes that might cause various security problems.
// Based on recommendations by Mark Pilgrim at:
// http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
if ($this->strip_htmltags)
{
foreach ($this->strip_htmltags as $tag)
{
$pcre = "/<($tag)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$tag" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>|(\/)?>)/siU';
while (preg_match($pcre, $data))
{
$data = preg_replace_callback($pcre, array(&$this, 'do_strip_htmltags'), $data);
}
}
}
if ($this->strip_attributes)
{
foreach ($this->strip_attributes as $attrib)
{
$data = preg_replace('/(<[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*)' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . trim($attrib) . '(?:\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>/', '\1\2\3>', $data);
}
}
// Replace relative URLs
$this->base = $base;
foreach ($this->replace_url_attributes as $element => $attributes)
{
$data = $this->replace_urls($data, $element, $attributes);
}
// If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
{
$images = SimplePie_Misc::get_element('img', $data);
foreach ($images as $img)
{
if (isset($img['attribs']['src']['data']))
{
$image_url = call_user_func($this->cache_name_function, $img['attribs']['src']['data']);
$cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $image_url, 'spi');
if ($cache->load())
{
$img['attribs']['src']['data'] = $this->image_handler . $image_url;
$data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
}
else
{
$file = new $this->file_class($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen);
$headers = $file->headers;
if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
{
if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
{
$img['attribs']['src']['data'] = $this->image_handler . $image_url;
$data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
}
else
{
trigger_error("$this->cache_location is not writeable", E_USER_WARNING);
}
}
}
}
}
}
// Having (possibly) taken stuff out, there may now be whitespace at the beginning/end of the data
$data = trim($data);
}
if ($type & SIMPLEPIE_CONSTRUCT_IRI)
{
}
if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
{
$data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
}
if ($this->output_encoding !== 'UTF-8')
{
$data = SimplePie_Misc::change_encoding($data, 'UTF-8', $this->output_encoding);
}
}
return $data;
}

+ Voici le graphe d'appel pour cette fonction :

SimplePie_Sanitize::set_image_handler (   $page = false)

Définition à la ligne 14694 du fichier simplepie.php.

{
if ($page)
{
$this->image_handler = (string) $page;
}
else
{
$this->image_handler = false;
}
}
SimplePie_Sanitize::set_output_encoding (   $encoding = 'UTF-8')

Définition à la ligne 14800 du fichier simplepie.php.

{
$this->output_encoding = (string) $encoding;
}
SimplePie_Sanitize::set_url_replacements (   $element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite'))

Set element/attribute key/value pairs of HTML attributes containing URLs that need to be resolved relative to the feed

public

Depuis:
1.0
Paramètres:
array$element_attributeElement/attribute key/value pairs

Définition à la ligne 14813 du fichier simplepie.php.

{
$this->replace_url_attributes = (array) $element_attribute;
}
SimplePie_Sanitize::strip_attributes (   $attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))

Définition à la ligne 14776 du fichier simplepie.php.

{
if ($attribs)
{
if (is_array($attribs))
{
$this->strip_attributes = $attribs;
}
else
{
$this->strip_attributes = explode(',', $attribs);
}
}
else
{
$this->strip_attributes = false;
}
}
SimplePie_Sanitize::strip_comments (   $strip = false)

Définition à la ligne 14795 du fichier simplepie.php.

{
$this->strip_comments = (bool) $strip;
}
SimplePie_Sanitize::strip_htmltags (   $tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))

Définition à la ligne 14752 du fichier simplepie.php.

{
if ($tags)
{
if (is_array($tags))
{
$this->strip_htmltags = $tags;
}
else
{
$this->strip_htmltags = explode(',', $tags);
}
}
else
{
$this->strip_htmltags = false;
}
}

Documentation des données membres

SimplePie_Sanitize::$base

Définition à la ligne 14658 du fichier simplepie.php.

SimplePie_Sanitize::$cache_class = 'SimplePie_Cache'

Définition à la ligne 14671 du fichier simplepie.php.

SimplePie_Sanitize::$cache_location = './cache'

Définition à la ligne 14669 du fichier simplepie.php.

SimplePie_Sanitize::$cache_name_function = 'md5'

Définition à la ligne 14670 du fichier simplepie.php.

SimplePie_Sanitize::$enable_cache = true

Définition à la ligne 14668 du fichier simplepie.php.

SimplePie_Sanitize::$encode_instead_of_strip = false

Définition à la ligne 14664 du fichier simplepie.php.

SimplePie_Sanitize::$file_class = 'SimplePie_File'

Définition à la ligne 14672 du fichier simplepie.php.

SimplePie_Sanitize::$force_fsockopen = false

Définition à la ligne 14675 du fichier simplepie.php.

SimplePie_Sanitize::$image_handler = ''

Définition à la ligne 14662 du fichier simplepie.php.

SimplePie_Sanitize::$output_encoding = 'UTF-8'

Définition à la ligne 14667 du fichier simplepie.php.

SimplePie_Sanitize::$remove_div = true

Définition à la ligne 14661 du fichier simplepie.php.

SimplePie_Sanitize::$replace_url_attributes
Valeur initiale :
array(
'a' => 'href',
'area' => 'href',
'blockquote' => 'cite',
'del' => 'cite',
'form' => 'action',
'img' => array('longdesc', 'src'),
'input' => 'src',
'ins' => 'cite',
'q' => 'cite'
)

Définition à la ligne 14677 du fichier simplepie.php.

SimplePie_Sanitize::$strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc')

Définition à la ligne 14665 du fichier simplepie.php.

SimplePie_Sanitize::$strip_comments = false

Définition à la ligne 14666 du fichier simplepie.php.

SimplePie_Sanitize::$strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')

Définition à la ligne 14663 du fichier simplepie.php.

SimplePie_Sanitize::$timeout = 10

Définition à la ligne 14673 du fichier simplepie.php.

SimplePie_Sanitize::$useragent = ''

Définition à la ligne 14674 du fichier simplepie.php.


La documentation de cette classe a été générée à partir du fichier suivant :