本文整理汇总了PHP中StringHelper::encodeMb4方法的典型用法代码示例。如果您正苦于以下问题:PHP StringHelper::encodeMb4方法的具体用法?PHP StringHelper::encodeMb4怎么用?PHP StringHelper::encodeMb4使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringHelper
的用法示例。
在下文中一共展示了StringHelper::encodeMb4方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: prepValueFromPost
/**
* @inheritDoc IFieldType::prepValueFromPost()
*
* @param mixed $value
*
* @return mixed
*/
public function prepValueFromPost($value)
{
// Temporary fix (hopefully) for a Redactor bug where some HTML will get submitted when the field is blank,
// if any text was typed into the field, and then deleted
if ($value == '<p><br></p>') {
$value = '';
}
if ($value) {
// Swap any pagebreak <hr>'s with <!--pagebreak-->'s
$value = preg_replace('/<hr class="redactor_pagebreak".*?>/', '<!--pagebreak-->', $value);
if ($this->getSettings()->purifyHtml) {
$purifier = new \CHtmlPurifier();
$purifier->setOptions(array('Attr.AllowedFrameTargets' => array('_blank'), 'HTML.AllowedComments' => array('pagebreak')));
$value = $purifier->purify($value);
}
if ($this->getSettings()->cleanupHtml) {
// Remove <span> and <font> tags
$value = preg_replace('/<(?:span|font)\\b[^>]*>/', '', $value);
$value = preg_replace('/<\\/(?:span|font)>/', '', $value);
// Remove inline styles
$value = preg_replace('/(<(?:h1|h2|h3|h4|h5|h6|p|div|blockquote|pre|strong|em|b|i|u|a)\\b[^>]*)\\s+style="[^"]*"/', '$1', $value);
// Remove empty tags
$value = preg_replace('/<(h1|h2|h3|h4|h5|h6|p|div|blockquote|pre|strong|em|a|b|i|u)\\s*><\\/\\1>/', '', $value);
}
}
// Find any element URLs and swap them with ref tags
$value = preg_replace_callback('/(href=|src=)([\'"])[^\'"#]+?(#[^\'"#]+)?(?:#|%23)(\\w+):(\\d+)(:' . HandleValidator::$handlePattern . ')?\\2/', function ($matches) {
return $matches[1] . $matches[2] . '{' . $matches[4] . ':' . $matches[5] . (!empty($matches[6]) ? $matches[6] : ':url') . '}' . (!empty($matches[3]) ? $matches[3] : '') . $matches[2];
}, $value);
// Encode any 4-byte UTF-8 characters.
$value = StringHelper::encodeMb4($value);
return $value;
}
示例2: endTemplateCache
/**
* Ends a template cache.
*
* @param string $key The template cache key.
* @param bool $global Whether the cache should be stored globally.
* @param string|null $duration How long the cache should be stored for.
* @param mixed|null $expiration When the cache should expire.
* @param string $body The contents of the cache.
*
* @throws \Exception
* @return null
*/
public function endTemplateCache($key, $global, $duration, $expiration, $body)
{
// Make sure template caching is enabled.
if (!$this->_isTemplateCachingEnabled()) {
return;
}
// If there are any transform generation URLs in the body, don't cache it.
// stripslashes($body) in case the URL has been JS-encoded or something.
// Can't use getResourceUrl() here because that will append ?d= or ?x= to the URL.
if (strpos(stripslashes($body), UrlHelper::getSiteUrl(craft()->config->getResourceTrigger() . '/transforms'))) {
return;
}
// Encode any 4-byte UTF-8 characters
$body = StringHelper::encodeMb4($body);
// Figure out the expiration date
if ($duration) {
$expiration = new DateTime($duration);
}
if (!$expiration) {
$duration = craft()->config->getCacheDuration();
if ($duration <= 0) {
$duration = 31536000;
// 1 year
}
$duration += time();
$expiration = new DateTime('@' . $duration);
}
// Save it
$transaction = craft()->db->getCurrentTransaction() === null ? craft()->db->beginTransaction() : null;
try {
craft()->db->createCommand()->insert(static::$_templateCachesTable, array('cacheKey' => $key, 'locale' => craft()->language, 'path' => $global ? null : $this->_getPath(), 'expiryDate' => DateTimeHelper::formatTimeForDb($expiration), 'body' => $body), false);
$cacheId = craft()->db->getLastInsertID();
// Tag it with any element criteria that were output within the cache
if (!empty($this->_cacheCriteria[$key])) {
$values = array();
foreach ($this->_cacheCriteria[$key] as $criteria) {
$flattenedCriteria = $criteria->getAttributes(null, true);
$values[] = array($cacheId, $criteria->getElementType()->getClassHandle(), JsonHelper::encode($flattenedCriteria));
}
craft()->db->createCommand()->insertAll(static::$_templateCacheCriteriaTable, array('cacheId', 'type', 'criteria'), $values, false);
unset($this->_cacheCriteria[$key]);
}
// Tag it with any element IDs that were output within the cache
if (!empty($this->_cacheElementIds[$key])) {
$values = array();
foreach ($this->_cacheElementIds[$key] as $elementId) {
$values[] = array($cacheId, $elementId);
}
craft()->db->createCommand()->insertAll(static::$_templateCacheElementsTable, array('cacheId', 'elementId'), $values, false);
unset($this->_cacheElementIds[$key]);
}
if ($transaction !== null) {
$transaction->commit();
}
} catch (\Exception $e) {
if ($transaction !== null) {
$transaction->rollback();
}
throw $e;
}
}