-1

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

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

这是我设置的功能:

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

    return $string;
}

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

4

3 回答 3

5

你可以使用

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

    return $string;
}

或者

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

    return $string;
}

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

于 2013-08-29T14:05:59.290 回答
0

尝试这个

function add_ampersand( $string ) {
    $string = str_replace( ' and ', ' & ', $string );
    return $string;
}
于 2013-08-29T14:07:00.020 回答
0

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

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

    return $string;
}
于 2013-08-29T14:07:43.367 回答