【问题标题】:PHP str_replace "and" [duplicate]PHP str_replace“和” [重复]
【发布时间】:2013-09-02 00:21:24
【问题描述】:

所以我有 str_replace,它在字符串中搜索“and”并将其替换为 & 但是,如果有一个单词包含字母“and”,例如“Howland”,它将替换为Howl&

我怎样才能让它只搜索单词and。

这是我设置的函数:

function add_ampersand( $string ) {
    $string = str_replace( 'and', '&', $string );

    return $string;
}

我必须注意,这个函数是在 URL 中使用的,所以“and”将在它的任一侧包含“-”,然后将其转换为空格。

【问题讨论】:

  • str_replace( ' and ', '&', $string ) ?
  • str_replace( '-and-', ' & ', $string)
  • 其实我有感觉你想用&替换单个单词and。然后你需要一个用于& 的 HTML 实体写在另一张纸上。

标签: php str-replace


【解决方案1】:

你可以使用

function add_ampersand( $string ) {
    $string = preg_replace( '/\band\b/', '&', $string );

    return $string;
}

function add_ampersand( $string ) {
    $string = str_replace( ' and ', ' & ', $string );

    return $string;
}

第一个更好的情况是“and”紧挨着字符串的末尾或紧挨着',.等特殊字符。

【讨论】:

  • 这成功了,我之前已经尝试过添加空格,但我想我忘了在 & 的两边添加空格也是。谢谢!
【解决方案2】:

试试这个

function add_ampersand( $string ) {
    $string = str_replace( ' and ', ' & ', $string );
    return $string;
}

【讨论】:

    【解决方案3】:

    如果我理解你的话,你有这样的字符串:“-and”或“and-”或“-and-”。 将其替换为 &amp 的最简单方法是:

    function add_ampersand( $string ) {
        $string = str_replace( '-and', '-&', $string );
        $string = str_replace( 'and-', '&-', $string );
        $string = str_replace( '-and-', '-&-', $string );
    
        return $string;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多