Я пытаюсь создать простой метод, который принимает параметры для htmlspecialchars. Хотя я получаю уведомление PHP:
Use of undefined constant ENT_HTML5 - assumed 'ENT_HTML5'
/**
* Encode string.
*
* @param array/string $value
* @param string $param
* @return string
*/
protected function escape($mixed, $params) {
$defaults = array('flags' => ENT_QUOTES | ENT_HTML5, 'charset' => 'UTF-8');
$params = array_merge($defaults, $params);
if (is_array($mixed)) {
foreach($mixed as $key => $value) {
$mixed[$key] = $this->escape($value, $params['flags'], $params['charset']);
}
} elseif (is_string($mixed)) {
$mixed = htmlspecialchars($mixed, $params['flags'], $params['charset']);
}
return $mixed;
}
ENT_QUOTES | ENT_HTML5
в:ENT_QUOTES
, я получаю другую ошибкуWarning: htmlspecialchars() expects parameter 2 to be long, string given
ОБНОВЛЕНИЕ
Я использую PHP 5.3, поэтому это причина ошибки HTML5. Если я изменю ENT_QUOTES | ENT_HTML5
на ENT_COMPAT | ENT_HTML401
, я получу ту же ошибку :
-. 121 ---1074051-Notice: Use of undefined constant ENT_HTML401 - assumed 'ENT_HTML401'
В настоящее время я имею дело с handlebars.js в приложении express.js. Чтобы сохранить модульность, я разделил все свои шаблоны на части.
Моя проблема:Я не смог найти способ передать переменные через частичный вызов. Скажем, у меня есть партиал, который выглядит так:
<div id=myPartial>
<h1>Headline<h1>
<p>Lorem ipsum</p>
</div>
Предположим, я зарегистрировал этот партиал под именем myPartial. В другом шаблоне я могу сказать что-то вроде:
<section>
{{> myPartial}}
</section>
Это отлично работает, партиал будет отображаться, как и ожидалось, и я счастливый разработчик. Но что мне сейчас нужно, так это способ передать различные переменные через этот вызов, чтобы, например, проверить в партиале, задан ли заголовок или нет. Что-то вроде:
<div id=myPartial>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem Ipsum</p>
</div>
И вызов должен выглядеть примерно так:
<section>
{{> myPartial|'headline':'Headline'}}
</section>
или так.
Я знаю, что могу определить все данные, которые мне нужны, до того, как я отрисую шаблон. Но мне нужен способ сделать это, как только что объяснил. Есть ли возможный способ?