Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 小枝和撇号_Php_Twig_Apostrophe - Fatal编程技术网

Php 小枝和撇号

Php 小枝和撇号,php,twig,apostrophe,Php,Twig,Apostrophe,我最近在一个PHP站点上实现了Twig。该站点有一个MySQL数据库,其中每个条目都是一个报告。在实现细枝撇号后,未正确显示细枝撇号。此问题的示例如下: 评估州政府的工人薪酬 网页上的字符集与以前相同 在使用Twig之前,我显示了这样的结果,一切正常: echo "<table border='1' width=100%><tr>"; // printing table headers for($i=0; $i<$fields_num; $i

我最近在一个PHP站点上实现了Twig。该站点有一个MySQL数据库,其中每个条目都是一个报告。在实现细枝撇号后,未正确显示细枝撇号。此问题的示例如下:

评估州政府的工人薪酬

网页上的字符集与以前相同

在使用Twig之前,我显示了这样的结果,一切正常:

    echo "<table border='1' width=100%><tr>";
    // printing table headers
    for($i=0; $i<$fields_num; $i++){
        $field = mysql_fetch_field($result);
        echo "<td>{$field->name}</td>";
    }

    while($row = mysql_fetch_assoc($result)){
        echo "<tr>";
        // $row is array... foreach( .. ) puts every element
        // of $row to $cell variable
        foreach($row as $cell)
            echo "<td>$cell</td>";
            echo "</tr>\n";
    }

    echo "</table>";
echo”“;
//打印表格标题

对于($i=0;$i),解决方案是使用防止自动转义

这涉及改变:

<td> {{ i.Title }) }} </td>
{{i.Title}}
致:

{{i.Title|raw}}

感谢Alain Tiemblo的评论为我指明了正确的方向。

撇号没有正确显示。-它们是如何显示的?您可能有MS应用程序(如word)中常见的卷曲撇号。这将是一个字符编码问题。如果你说的是,那是因为出于安全原因,Twig使用自动转义。无论如何,它不会给浏览器带来麻烦。@ArtisiticPhoenix-为什么实现细枝会产生字符编码问题?@indigochild-因为htmlentities和卷曲/智能引号诅咒。(非SO链接)并且同样适用于ndash/mdash/ellipsist如果您确定在这些字段中没有可能使用html或
用户
填充值,那么这是很好的。然而,更好的解决方案是将
htmlentities
上的字符编码改为
ISO-8859-1
(我认为就是这个),或者用“网络安全”字符替换有问题的字符。否则,如果用户可以提供任何i.Title,那么您的站点就可以使用XSS。您的数据库表也可能不是UTF-8。
<td> {{ i.Title }) }} </td>
<td> {{ i.Title|raw }) }} </td>