[英]Rendering Quote Marks in PHP String
我有一個PHP函數,在html中呈現時會輸出引號。
onload="this.rel='stylesheet'"
我想要的是以下內容:
onload="this.rel='stylesheet'"
這是導致第一個示例發生的函數-有人知道我可以解決這個問題嗎?
public function get_css($opts, $index, $count)
{
$out = array();
$version = filemtime($_SERVER['DOCUMENT_ROOT'].'/assets/css/app.min.css');
$str = "this.rel='stylesheet'";
$out[] = $this->_single_tag('link', array(
'rel'=>'preload',
'as'=>'style',
'type'=>'text/css',
'href'=>'/assets/css/app.min.'.$version.'.css',
'onload'=>$str,
));
return implode("\n\t", $out)."\n";
}
這是_single_tag的功能
protected function _single_tag($tag=false, array $attrs)
{
if ($tag===false) return;
return PerchXMLTag::create($tag, 'single', $attrs);
}
問題來自PerchXMLTag::create()
方法,該方法對提供給它的值進行一些HTML編碼。
查看Perch文檔 ,似乎沒有辦法禁用它,因此我的建議是將get_css
函數中的代碼替換為僅輸出原始HTML的內容:
public function get_css($opts, $index, $count)
{
$out = array();
$version = filemtime($_SERVER['DOCUMENT_ROOT'].'/assets/css/app.min.css');
$str = "this.rel='stylesheet'";
$out[] = "<link rel='preload' as='style' type='text/css' href='/assets/css/app.min.{$version}.css' onload='{$str}' />";
return implode("\n\t", $out)."\n";
}
public function get_css($opts, $index, $count)
{
$out = array();
$version = filemtime($_SERVER['DOCUMENT_ROOT'].'/assets/css/app.min.css');
$str = "this.rel=\"stylesheet\"";
$out[] = $this->_single_tag('link', array(
'rel'=>'preload',
'as'=>'style',
'type'=>'text/css',
'href'=>'/assets/css/app.min.'.$version.'.css',
'onload'=>$str,
));
return implode("\n\t", $out)."\n";
}
試試吧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.