将文本转换为注释

时间:2014-10-21 10:04:07

标签: php html mysql comments smarty

背景(非常简化):我有一个onlineshop和一个选择框。我有很多文章和许多选择框。因此我必须使用php为selectbox提供注释,以便它们在数据库中有所不同。

问题(也非常简化):当我加载数据集(我希望我拼写正确)时,我明显得到选择+评论。

问题(更简化):

我明白了:

<td>VariantXYZ <!-- randomID --></td>

显示如下(没有蓝色):

VariantXYZ <!-- randomID -->

问题:如何将评论转换为评论?^^

编辑:我之前尝试过preg_replace方法,但它对我没用,因为我忘记了我使用smarty; - )

我的代码如下:

[{foreach from=$orderArticles item=listitem}]
            <tr>
                <td valign="top" class="edittext" style="background-color:#e2d9d9; border: 1px solid #fff">[{ $listitem->oxorderarticles__oxamount->value }] * </td>
                <td valign="top" class="edittext" style="background-color:#e2d9d9; border: 1px solid #fff">&nbsp;[{ $listitem->oxorderarticles__oxartnum->value }]</td>
                <td valign="top" class="edittext" style="background-color:#e2d9d9; border: 1px solid #fff">&nbsp;[{ $listitem->oxorderarticles__oxtitle->getRawValue()|oxtruncate:20:""|strip_tags }][{if $listitem->oxwrapping__oxname->value}]&nbsp;([{$listitem->oxwrapping__oxname->value}])&nbsp;[{/if}]</td>
                <td valign="top" class="edittext" style="background-color:#e2d9d9; border: 1px solid #fff">&nbsp;[{ $listitem->oxorderarticles__oxselvariant->value }]</td>

                [{if $edit->isNettoMode() }]
                    <td valign="top" class="edittext">&nbsp;&nbsp;[{ $listitem->getNetPriceFormated() }] [{ $edit->oxorder__oxcurrency->value }]</td>
                [{else}]
                    <td valign="top" class="edittext" style="background-color:#e2d9d9; border: 1px solid #fff">&nbsp;&nbsp;[{ $listitem->getTotalBrutPriceFormated() }] [{ $edit->oxorder__oxcurrency->value }]</td>
                [{/if}]
                [{ if $listitem->getPersParams() }]
                <td valign="top" class="edittext">
                    [{foreach key=sVar from=$listitem->getPersParams() item=aParam name=persparams}]
                        &nbsp;&nbsp;,&nbsp;<em>
                            [{if $smarty.foreach.persparams.first && $smarty.foreach.persparams.last}]
                                [{ oxmultilang ident="GENERAL_LABEL" }]
                            [{else}]
                                [{$sVar}] :
                            [{/if}]
                            [{$aParam}]
                        </em>
                    [{/foreach}]
                </td>
                [{/if}]
            </tr>
            [{/foreach}]

我想在$ listitem-&gt; oxorderarticles__oxselvariant-&gt;值上使用preg_replace,我这样做了:

[{$listitem = preg_replace( "/&lt;!--(.|\s)*?--&gt;/" , "###" , $listitem )}]

但它会删除$ listitem的所有字段。

我应该提到我首先使用smarty。对不起。

1 个答案:

答案 0 :(得分:0)

我认为这可能与字符串的编码有关。您可以在将其输出到页面之前尝试此操作:

$text = html_entity_decode($text);

http://php.net/manual/en/function.html-entity-decode.php

这可能会有所帮助。但你真正需要做的是查看源代码,看看它到底有什么。另一种选择可能是:

$text = stripslashes($text);

http://uk3.php.net/manual/en/function.stripslashes.php

我真的不知道你的确切问题是什么。我也在Smarty文档中找到了这个:

http://www.smarty.net/docs/en/variable.escape.html.tpl

另一种改变字符编码方式的方法。你可以尝试:

{$variable nofilter} 

看看是否有帮助。但这是一个有许多可能原因的问题,所以没有保证。您需要逐步跟踪数据以进行调试。