【问题标题】:php str_replace() for / and &php str_replace() 用于 / 和 &
【发布时间】:2016-11-10 08:45:19
【问题描述】:

我们在 Magento 中为不同类别的一些产品创建了一个 xml 提要。有些产品的名称带有&,或者品牌名称带有/。当我们生成提要时,提要给出错误。

在之前的提要中,我们使用了这行代码:

<name><? return str_replace("&", "&amp;", "{name}"); ?></name>

&amp;amp; 变成&amp;amp;,这很有效。现在我们需要对/ 做同样的事情。我们需要将/ 变成“and”或类似的东西。

在我们的 xml 提要中有 2 行(不同的)代码,我们可以在其中粘贴 str_replace:

<? if ("{name}" != "") return "<li><b>Name:</b> {name}</li>"; ?>

<name>{name}</name>

str_replace 应该粘贴到哪里?

【问题讨论】:

  • &lt;? return str_replace("&amp;", "&amp;amp;", "{name}"); ?&gt; 更改为&lt;? return str_replace(array('&amp;', '/') , array('&amp;amp;','and'), "{name}"); ?&gt;"{name}" 部分正确吗? str_replace 接受数组进行搜索和替换。
  • 您可以使用 str_replace 两次,一次用于“&”,一次用于“/”。
  • @RaghbendraNayak 为什么str_replace 可以一次性完成两次。
  • if ("{merk}" != "Merknaam") return "{merk} "; ?> 这是使之前的提要工作的完整代码。 Naam 是行的名称
  • @bansi 是的,我们也可以一口气完成。如果他在语法上遇到任何问题,那么他也可以使用它两次。

标签: php xml str-replace feed ampersand


【解决方案1】:

我的 xml 工作正常。

<serie><? return str_replace(array('&', '/') , array('&amp;','and'), "{serie}"); ?></serie> 

为我做了诀窍。

代码末尾的 {serie} 是问题所在。我不明白为什么它在以前的提要中有效,但你没有听到我抱怨哈哈。

谢谢。

【讨论】:

    【解决方案2】:

    在这种情况下不要使用 str_replace,有 htmlentities 函数用于此目的:https://secure.php.net/manual/en/function.htmlentities.php

    【讨论】:

    • 这应该是评论而不是答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多