Search And Replace Special Characters PHP

后端 未结 2 2072
庸人自扰
庸人自扰 2021-01-24 23:01

I am trying to search and replace special characters in strings that I am parsing from a csv file. When I open the text file with vim it shows me the character is <95> . I

2条回答
  •  一生所求
    2021-01-24 23:09

    Following Bobince's suggestion, the following worked for me:

    analyse_file() -> http://www.php.net/manual/en/function.fgetcsv.php#101238

    function file_get_contents_utf8($fn) {
        $content = file_get_contents($fn);
        return mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
    }
    
    
    if( !($_FILES['file']['error'] == 4) ) {
        foreach($_FILES as $file) {
            $n = $file['name'];
            $s = $file['size'];
            $filename = $file['tmp_name'];
            ini_set('auto_detect_line_endings',TRUE); // in case Mac csv
            // dealing with fgetcsv() special chars
            // read the file into a string, do your pre-processing changes
            // write it back out to a temporary file, and have fgetcsv() read that.
            $file = file_get_contents_utf8($filename);
            $tempFile = tempnam(sys_get_temp_dir(), '');
            $handle = fopen($tempFile, "w+");
            fwrite($handle,$file);
            fseek($handle, 0);
            $filename = $tempFile;      
            // END -- dealing with fgetcsv() special chars
            $Array = analyse_file($filename, 10);
            $csvDelim = $Array['delimiter']['value'];
            while (($data = fgetcsv($handle, 1000, $csvDelim)) !== FALSE) {
                // process the csv file
            }
        } // end foreach
    }
    

提交回复
热议问题