PHP - 如果一个单词包含某个字符串,请替换它


PHP - If a word contains a certain string replace it

我有一个带有坏字符串的数组,我想用某些单词替换它,目前我写了这段代码来管理它,但它不能正常工作:

public function _clean_filename($fn)
{
    if($fn === '')
        return;
    foreach((array)$_filename_bad_chars as $bad)
    {
        if(strpos($fn, $bad))
        {
            str_replace($bad, '', $fn);
        }
    }
    return $fn;
}

Simptom:当我输入一个带有坏字符串的单词时,该函数不返回任何内容。

我应该如何重写此代码以使其正常运行?

似乎:

  1. $_filename_bad_chars应该$this->_filename_bad_chars
  2. str_replace($bad, '', $fn);应该$fn = str_replace($bad, '', $fn);

你可以简化整个方法:

public function _clean_filename($fn)
{        
    return str_replace($this->_file_bad_chars, '', $fn);
}

str_replace接受所有参数的数组,给定一个空字符串subject将返回一个空字符串

此外,您对公共方法使用前导下划线很奇怪!