本文整理汇总了PHP中PHPTAL_Php_CodeWriter::getEncoding方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPTAL_Php_CodeWriter::getEncoding方法的具体用法?PHP PHPTAL_Php_CodeWriter::getEncoding怎么用?PHP PHPTAL_Php_CodeWriter::getEncoding使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPTAL_Php_CodeWriter
的用法示例。
在下文中一共展示了PHPTAL_Php_CodeWriter::getEncoding方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: before
public function before(PHPTAL_Php_CodeWriter $codewriter)
{
$escape = true;
if (preg_match('/^(text|structure)(?:\\s+(.*)|\\s*$)/', $this->expression, $m)) {
if ($m[1] == 'structure') {
$escape = false;
}
$this->expression = isset($m[2]) ? $m[2] : '';
}
// if no expression is given, the content of the node is used as
// a translation key
if (strlen(trim($this->expression)) == 0) {
$key = $this->_getTranslationKey($this->phpelement, !$escape, $codewriter->getEncoding());
$key = trim(preg_replace('/\\s+/sm' . ($codewriter->getEncoding() == 'UTF-8' ? 'u' : ''), ' ', $key));
$code = $codewriter->str($key);
} else {
$code = $codewriter->evaluateExpression($this->expression);
}
$this->_prepareNames($codewriter, $this->phpelement);
$codewriter->pushCode('echo $_translator->translate(' . $code . ',' . ($escape ? 'true' : 'false') . ');');
}
示例2: generateCode
public function generateCode(PHPTAL_Php_CodeWriter $codewriter)
{
$mode = $codewriter->getOutputMode();
$value = $this->getValueEscaped();
$inCDATAelement = PHPTAL_Dom_Defs::getInstance()->isCDATAElementInHTML($this->parentNode->getNamespaceURI(), $this->parentNode->getLocalName());
// in HTML5 must limit it to <script> and <style>
if ($mode === PHPTAL::HTML5 && $inCDATAelement) {
$codewriter->pushHTML($codewriter->interpolateCDATA(str_replace('</', '<\\/', $value)));
} elseif ($mode === PHPTAL::XHTML && $inCDATAelement || $mode === PHPTAL::XML && preg_match('/[<>&]/', $value) || $mode !== PHPTAL::HTML5 && preg_match('/<\\?|\\${structure/', $value)) {
// in text/html "</" is dangerous and the only sensible way to escape is ECMAScript string escapes.
if ($mode === PHPTAL::XHTML) {
$value = str_replace('</', '<\\/', $value);
}
$codewriter->pushHTML($codewriter->interpolateCDATA('<![CDATA[' . $value . ']]>'));
} else {
$codewriter->pushHTML($codewriter->interpolateHTML(htmlspecialchars($value, ENT_QUOTES, $codewriter->getEncoding())));
}
}