Codeigniter 2.1 - 文件上传,字符替换

I have this to functions:

This one is for image upload:

   function img_upload($folder) {
            $this->path = './public/img/' . $folder;
            $imgs = array();
            $count = 0;
            foreach ($_FILES as $key => $value) {
                $img_name = $this->char_replace($value['name'][$count], '_');
                $count++;
                $config = array(
                'allowed_types' => 'jpg|jpeg|png|gif',
                'upload_path' => $this->path,
                'file_name' => $img_name
            );
                $this->CI->load->library('upload', $config);
              if($key != 'logo') :
                  if (!$this->CI->upload->do_upload($key)) {
                } else {
                    $q = $this->CI->upload->data();
                    $config['image_library'] = 'gd2';
                    $config['source_image'] = $this->path . '/' . $q['file_name'];
                    $config['new_image'] = $this->path . '/thumbs';
                    $config['create_thumb'] = FALSE;
                    $config['maintain_ratio'] = TRUE;
                    $config['width'] = 128;
                    $config['height'] = 128;

                    $this->CI->load->library('image_lib');
                    $this->CI->image_lib->clear();
                    $this->CI->image_lib->initialize($config);
                    $this->CI->image_lib->resize();
                    array_push($imgs, $q['file_name']);
                }
              endif;
            }

And this one is for replacing characters:

function char_replace($text, $rep_simbol = " ")
    {
        $char = array('!', '&', '?', '/', '/\/', ':', ';', '#', '<', '>', '=', '^', '@', '~', '`', '[', ']', '{', '}');
        return $name = str_replace($char, $rep_simbol, $text);
    }

Uploading is working great, but character replacement no quite. It is using only first letter from the name of file that is uploading, and rest is cut off? What is wrong here?

second parameter should be array aswell:

function char_replace($text, $rep_simbol = " ")
    {
        $char = array('!', '&', '?', '/', '/\/', ':', ';', '#', '<', '>', '=', '^', '@', '~', '`', '[', ']', '{', '}');
        $symbols = array();
        foreach ($char as $val)
        $symbols[] = " ";//or empty string, whatever you want
        return $name = str_replace($char, $symbols, $text);
    }