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

时间:2016-02-01 23:03:04

标签: php

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

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;
}

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

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

2 个答案:

答案 0 :(得分:4)

似乎:

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

答案 1 :(得分:2)

你可以简化整个方法:

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

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

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