本文整理汇总了PHP中HTMLPurifier类的典型用法代码示例。如果您正苦于以下问题:PHP HTMLPurifier类的具体用法?PHP HTMLPurifier怎么用?PHP HTMLPurifier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLPurifier类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: html_purify
function html_purify($dirty_html, $config = FALSE)
{
require_once APPPATH . 'third_party/htmlpurifier-4.6.0-standalone/HTMLPurifier.standalone.php';
if (is_array($dirty_html)) {
foreach ($dirty_html as $key => $val) {
$clean_html[$key] = html_purify($val, $config);
}
} else {
$ci =& get_instance();
switch ($config) {
//settings for rhe WYSIWYG
case 'comment':
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', $ci->config->item('charset'));
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('HTML.Allowed', 'a[href|title],img[title|src|alt],em,strong,cite,blockquote,code,ul,ol,li,dl,dt,dd,p,br,h1,h2,h3,h4,h5,h6,span,*[style]');
$config->set('AutoFormat.AutoParagraph', TRUE);
$config->set('AutoFormat.Linkify', TRUE);
$config->set('AutoFormat.RemoveEmpty', TRUE);
break;
case FALSE:
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', $ci->config->item('charset'));
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
break;
default:
show_error('The HTMLPurifier configuration labeled "' . htmlentities($config, ENT_QUOTES, 'UTF-8') . '" could not be found.');
}
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);
}
return $clean_html;
}
示例2: filterData
/**
* 过滤数据 重组
* @param array $data
* @param array $modelfield
*/
public function filterData($data = array(), $modelfield = array())
{
$newmodelfield = $this->parseModelField($modelfield);
$newdata = $data;
foreach ($data as $k => $d) {
if (key_exists($k, $newmodelfield)) {
switch ($newmodelfield[$k]['type']) {
case 'editor':
//编辑器过滤XSS
Vendor('Htmlpurifier.library.HTMLPurifier#auto');
$config = \HTMLPurifier_Config::createDefault();
$purifier = new \HTMLPurifier($config);
$newdata[$k] = $purifier->purify(htmlspecialchars_decode($d));
break;
case 'position':
//推荐位
$newdata[$k] = implode(',', $d);
break;
case 'checkbox':
$newdata[$k] = implode(',', $d);
break;
}
}
}
return $newdata;
}
示例3: sanitize
/**
* Value sanitation. Sanitize input and output with ease using one of the sanitation types below.
*
* @param string $data the string/value you wish to sanitize
* @param string $type the type of sanitation you wish to use.
* @return string the sanitized string
*/
public function sanitize($data, $type = '')
{
## Use the HTML Purifier, as it help remove malicious scripts and code. ##
## HTML Purifier 4.4.0 - Standards Compliant HTML Filtering ##
require_once 'htmlpurifier/HTMLPurifier.standalone.php';
$purifier = new HTMLPurifier();
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
// If no type if selected, it will simply run it through the HTML purifier only.
switch ($type) {
// Remove HTML tags (can have issues with invalid tags, keep that in mind!)
case 'purestring':
$data = strip_tags($data);
break;
// Only allow a-z (H & L case)
// Only allow a-z (H & L case)
case 'atoz':
$data = preg_replace('/[^a-zA-Z]+/', '', $data);
break;
// Integers only - Remove any non 0-9 and use Intval() to make sure it is an integer which comes out.
// Integers only - Remove any non 0-9 and use Intval() to make sure it is an integer which comes out.
case 'integer':
$data = intval(preg_replace('/[^0-9]+/', '', $data));
break;
}
/* HTML purifier to help prevent XSS in case anything slipped through. */
$data = $purifier->purify($data);
return $data;
}
示例4: saveAction
public function saveAction()
{
$form = new News_Form_Article();
$formData = $this->_request->getPost();
$form->populate($formData);
if (!$form->isValid($formData)) {
$appSession = Zend_Registry::get('appSession');
$appSession->articleForm = $form;
$this->_forward('index');
return;
}
$news = new News_Model_News();
if ($this->_getParam('id')) {
if (!($article = $news->getRowInstance($this->_getParam('id')))) {
$this->_helper->FlashMessenger->addMessage($this->view->translate('The article doesn\'t exist.'));
$this->_redirect('/news');
return;
}
} else {
$article = $news->createRow();
}
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$cleanHtml = $purifier->purify($form->getValue('content'));
$article->title = $form->getValue('title');
$article->date = $form->getValue('date');
$article->excerpt = $form->getValue('excerpt');
$article->content = $cleanHtml;
$article->save();
$this->_helper->FlashMessenger->addMessage($this->view->translate('The article has been saved.'));
$this->_redirect('/news');
}
示例5: filterHTML
/**
* Gets the selected HTML Filter & filters the content
* @param string $html input to be cleaned
* @TODO allow the webmasters to select which HTML Filter they want to use such as
* HTMLPurifier, HTMLLawed etc, for now we just have HTMLPurifier.
* @return string
**/
public function filterHTML($html)
{
$icmsConfigPurifier = icms::$config->getConfigsByCat(ICMS_CONF_PURIFIER);
$fcomment = '<!-- filtered with htmlpurifier -->';
$purified = strpos($html, $fcomment);
if ($purified !== FALSE) {
$html = str_replace($fcomment, '', $html);
}
if ($icmsConfigPurifier['enable_purifier'] !== 0) {
ICMS_PLUGINS_PATH;
require_once ICMS_LIBRARIES_PATH . '/htmlpurifier/HTMLPurifier.standalone.php';
require_once ICMS_LIBRARIES_PATH . '/htmlpurifier/HTMLPurifier.autoload.php';
if ($icmsConfigPurifier['purifier_Filter_ExtractStyleBlocks'] !== 0) {
require_once ICMS_PLUGINS_PATH . '/csstidy/class.csstidy.php';
}
// get the Config Data
$icmsPurifyConf = self::getHTMLFilterConfig();
// uncomment for specific config debug info
//parent::filterDebugInfo('icmsPurifyConf', $icmsPurifyConf);
$purifier = new HTMLPurifier($icmsPurifyConf);
$html = $purifier->purify($html);
$html .= $fcomment;
}
return $html;
}
示例6: save
function save()
{
$this->import_parameters();
$this->load_library('htmlpurifier-4.5.0-lite/library/HTMLPurifier.auto');
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$message = $purifier->purify(html_entity_decode($this->message));
$this->set('message', $message);
$reference_object = new $this->reference_object($this->reference_id);
//if the message is being created for an object other than a project, then the project id will be retrieved from
//the actual object
//if the message is being posted on a project, then the project id is the messages reference_id
if ($this->reference_object != 'project') {
$project_id = isset($reference_object->project_id) ? $reference_object->project_id : false;
} else {
$project_id = $this->reference_id;
}
if ($project_id) {
$this->set('project_id', $project_id);
}
if (isset($reference_object->client_id)) {
$this->set('client_id', $reference_object->client_id);
}
$this->set('user_id', current_user()->id);
//these two parameters shouldn't be set yet (they are set when we log activity which happens after the save),
//but let's just make sure
$this->unset_param('linked_object');
$this->unset_param('linked_object_title');
$result = parent::save();
ActivityManager::message_created($this);
return $result;
}
示例7: _purifyValue
protected function _purifyValue($val)
{
if ($val == $this->_example) {
$val = null;
} else {
static $purifier = null;
if ($this->_prevent_xss) {
if (!empty($val)) {
if ($purifier == null && class_exists('HTMLPurifier')) {
if (iconv_get_encoding("internal_encoding") != "UTF-8") {
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', iconv_get_encoding("internal_encoding"));
// replace with your encoding
$purifier = new HTMLPurifier($config);
} else {
$purifier = new HTMLPurifier();
}
}
if ($purifier != null) {
$val = $purifier->purify($val);
}
}
}
}
return $val;
}
示例8: scrape
function scrape($url, $path, $parse)
{
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
//encoding of output
$config->set('HTML.Doctype', 'XHTML 1.1');
//doctype of output
$purifier = new HTMLPurifier($config);
$dirty_html = file_get_contents($url);
$clean_html = $purifier->purify($dirty_html);
$html = str_get_html($clean_html);
switch ($parse) {
case 'tag':
$ret = $html->find($path)->tag;
break;
case 'outertext':
$ret = $html->find($path)->outertext;
break;
case 'innertext':
$ret = $html->find($path)->innertext;
break;
case 'plaintext':
$ret = $html->find($path)->plaintext;
break;
default:
$ret = $html->find($path);
break;
}
// clean up memory
$html->clear();
unset($dirty_html);
unset($clean_html);
unset($html);
return $ret;
}
示例9: clean
/**
* clean the comment text field from html, in order to use it as submitted text
* uses the htmlpurifier library, or a simple strip_tags call, based on the app.yml config file
*
* @return String
* @param String - the text to be cleaned
*
* @author Guglielmo Celata
* @see http://htmlpurifier.org/
**/
public static function clean($text)
{
$allowed_html_tags = sfConfig::get('app_deppPropelActAsCommentableBehaviorPlugin_allowed_tags', array());
$use_htmlpurifier = sfConfig::get('app_deppPropelActAsCommentableBehaviorPlugin_use_htmlpurifier', false);
if ($use_htmlpurifier) {
$htmlpurifier_path = sfConfig::get('app_deppPropelActAsCommentableBehaviorPlugin_htmlpurifier_path', SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'htmlpurifier' . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR);
require_once $htmlpurifier_path . 'HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML', 'Doctype', 'XHTML 1.0 Strict');
$config->set('HTML', 'Allowed', implode(',', array_keys($allowed_html_tags)));
if (isset($allowed_html_tags['a'])) {
$config->set('HTML', 'AllowedAttributes', 'a.href');
$config->set('AutoFormat', 'Linkify', true);
}
if (isset($allowed_html_tags['p'])) {
$config->set('AutoFormat', 'AutoParagraph', true);
}
$purifier = new HTMLPurifier($config);
$clean_text = $purifier->purify($text);
} else {
$allowed_html_tags_as_string = "";
foreach ($allowed_html_tags as $tag) {
$allowed_html_tags_as_string .= "{$tag}";
}
$clean_text = strip_tags($text, $allowed_html_tags_as_string);
}
return $clean_text;
}
示例10: generate
public function generate($f3)
{
require_once '***/libs/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
make_seed();
$models = array('cv2/lm_lstm_epoch50.00_0.5080.t7', 'cv/lm_lstm_epoch46.00_0.7940.t7');
$rnx = array_rand($models, 1);
$model = $models[$rnx];
$seed = round(rand());
$cmd = 'cd ***/char-rnn && th ***/char-rnn/sample.lua -verbose 0 -temperature 0.8 -gpuid -1 -seed ' . $seed . ' -length 2048 -primetext "<poem><html><head><meta charset=\\"utf-8\\"><style>body{background-color:#000;color:#0c0;}</style></head><body>" /home/drakh/klingon-poetry/' . $model;
$postVars = array('cmd' => $cmd);
$options = array('method' => 'POST', 'content' => http_build_query($postVars));
$r = \Web::instance()->request('http://127.0.0.1:1337', $options);
$clean_html = $purifier->purify($r['body']);
$poem = nl2br(trim($clean_html));
$db_data = array('seed' => $seed, 'model' => $model, 'poem' => $poem);
$data_to_save = json_encode($db_data, JSON_UNESCAPED_UNICODE);
$this->model->poem = $data_to_save;
$this->model->written_date = date('d.m.Y H:i:s');
$this->model->save();
$id = $this->model->id_poem;
$postVars = array('id' => $id);
$options = array('method' => 'POST', 'content' => http_build_query($postVars));
$r = \Web::instance()->request('http://127.0.0.1:1338', $options);
$f3->reroute('/poem/' . $id);
}
示例11: edit_contact
public function edit_contact()
{
if (isset($_POST['edit_contact_btn'])) {
$data_post = $this->input->post();
$this->load->helper('HTMLPurifier');
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$data_update['content'] = $purifier->purify($data_post['content_contact']);
if ($this->Contact->update($data_update)) {
$content = 'Cập nhật thông tin liên lạc thành công.';
set_notice('status', SUCCESS_STATUS, $content);
header('location:' . base_url() . 'index.php/_admin/manage_site/contact/show_contact');
} else {
$content = 'Cập nhật thông tin liên lạc thất bại.';
set_notice('status', FAILED_STATUS, $content);
header('location:' . base_url() . 'index.php/_admin/manage_site/contact/show_contact');
}
} else {
$data['contact'] = $this->Contact->get_contact();
$data['subView'] = '/manage_site/contact/edit_contact_layout';
$data['title'] = "Cập nhật thông tin liên hệ";
$data['subData'] = $data;
$this->load->view('/main/main_layout', $data);
}
}
示例12: purify
public function purify($html, $options = array())
{
if (empty($html)) {
return '';
}
require_once Config::get('HTML_PURIFIER');
require_once 'HTMLPurifier.func.php';
$html = Util\toUTF8String($html);
$config = \HTMLPurifier_Config::createDefault();
$config->set('AutoFormat.AutoParagraph', false);
$config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
//$config->set('AutoFormat.RemoveEmpty', true);//slows down htmls parsing
//$config->set('AutoFormat.RemoveSpansWithoutAttributes', true); //medium slows down htmls parsing
$config->set('HTML.ForbiddenElements', array('head'));
$config->set('HTML.SafeIframe', true);
$config->set('HTML.TargetBlank', true);
$config->set('URI.DefaultScheme', 'https');
$config->set('Attr.EnableID', true);
if (!empty($options)) {
foreach ($options as $k => $v) {
$config->set($k, $v);
}
}
$purifier = new \HTMLPurifier($config);
// This storage is freed on error
Cache::set('memory', str_repeat('*', 1024 * 1024));
register_shutdown_function(array($this, 'onScriptShutdown'));
$html = $purifier->purify($html);
Cache::remove('memory');
$html = str_replace('/preview/#', '#', $html);
return $html;
}
示例13: sanitize
function sanitize($input, $type = "old")
{
switch ($type) {
case "int":
$input = filter_var($input, FILTER_SANITIZE_NUMBER_INT);
break;
case "string":
$input = filter_var($input, FILTER_SANITIZE_STRING);
break;
case "url":
$input = filter_var($input, FILTER_SANITIZE_URL);
break;
case "email":
$input = strtolower(filter_var($input, FILTER_SANITIZE_EMAIL));
break;
case "markdown":
include_once ROOT . DS . 'libraries' . DS . 'purifier' . DS . 'HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$input = $purifier->purify($input);
break;
case "comment":
$input = htmlentities($input, ENT_QUOTES, "UTF-8");
break;
case "old":
echo "Old version of sanitize called";
exit;
break;
}
return $input;
}
示例14: smarty_modifier_xoops_html_purifier
function smarty_modifier_xoops_html_purifier($html, $ecoding = null, $doctype = null)
{
require_once XOOPS_LIBRARY_PATH . '/htmlpurifier/library/HTMLPurifier.auto.php';
$encoding = $encoding ? $encoding : _CHARSET;
$doctypeArr = array("HTML 4.01 Strict", "HTML 4.01 Transitional", "XHTML 1.0 Strict", "XHTML 1.0 Transitional", "XHTML 1.1");
$config = HTMLPurifier_Config::createDefault();
if (in_array($doctype, $doctypeArr)) {
$config->set('HTML.Doctype', $doctype);
}
if ($_conv = $encoding !== 'UTF-8' && function_exists('mb_convert_encoding')) {
$_substitute = mb_substitute_character();
mb_substitute_character('none');
$html = mb_convert_encoding($html, 'UTF-8', $encoding);
$config->set('Core.Encoding', 'UTF-8');
} else {
$config->set('Core.Encoding', $encoding);
}
$purifier = new HTMLPurifier($config);
$html = $purifier->purify($html);
if ($_conv) {
$html = mb_convert_encoding($html, $encoding, 'UTF-8');
mb_substitute_character($_substitute);
}
return $html;
}
示例15: loadHttpData
/**
* Prebehneme data HTML purifierom
* @param array
* @return void
*/
public function loadHttpData()
{
$data = $this->getForm()->getHttpData();
$name = $this->getName();
$value = isset($data[$name]) && is_scalar($data[$name]) ? $data[$name] : NULL;
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', $this->encoding);
if (!is_null($this->docType)) {
$config->set('HTML.Doctype', $this->docType);
}
$config->set('HTML.Allowed', 'p,a[href],strong,em,b,i,ul,ol,li,h1,h2,h3,h4,h5,div[class],span[class],br,sup,table[border],tr,td,th,thead,tbody,img[src],img[style]');
// $config->set('HTML.Allowed', 'p,a[href],strong,em,ul,ol,li,h1,h2,div[class],span[class],br,sup');
// $config->set('HTML.Allowed', 'p,a[href],strong,em,ul,ol,li,h2,h3,h4,h5');
// povoli lubovolny obsah pre href atribut odkazu - aby sa dali vyuzit latte links
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
// $config->set('HTML.DefinitionRev', 1);
// $config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'Text');
$purifier = new HTMLPurifier($config);
// var_dump($value);
// kedze CKEDITOR to escapuje a neviem ho prinutit aby to nerobil, tak to tu dam naspat, Purifier to nasledne aj tak spravne zescapuje
// $value = html_entity_decode($value);
// var_dump($value);
// var_dump($purifier->purify($value));die();
$this->setValue($purifier->purify($value));
}