繁体   English   中英

在PHP字符串中渲染引号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM