PMA\libraries\Encoding::kanjiFileConv PHP Метод

kanjiFileConv() публичный статический Метод

Kanji file encoding convert
public static kanjiFileConv ( string $file, string $enc, string $kana ) : string
$file string the name of the file to convert
$enc string the destination encoding code
$kana string set 'kana' convert to JIS-X208-kana
Результат string the name of the converted file
    public static function kanjiFileConv($file, $enc, $kana)
    {
        if ($enc == '' && $kana == '') {
            return $file;
        }
        $tmpfname = tempnam(ConfigFile::getDefaultTempDirectory(), $enc);
        $fpd = fopen($tmpfname, 'wb');
        $fps = fopen($file, 'r');
        self::kanjiChangeOrder();
        while (!feof($fps)) {
            $line = fgets($fps, 4096);
            $dist = self::kanjiStrConv($line, $enc, $kana);
            fputs($fpd, $dist);
        }
        // end while
        self::kanjiChangeOrder();
        fclose($fps);
        fclose($fpd);
        unlink($file);
        return $tmpfname;
    }

Usage Example

Пример #1
0
 /**
  * Test for Encoding::kanjiFileConv
  *
  * @return void
  * @test
  */
 public function testFileConv()
 {
     $file_str = "教育漢字常用漢字";
     $filename = 'test.kanji';
     $file = fopen($filename, 'w');
     fputs($file, $file_str);
     fclose($file);
     $GLOBALS['kanji_encoding_list'] = 'ASCII,EUC-JP,SJIS,JIS';
     $result = Encoding::kanjiFileConv($filename, 'JIS', 'kana');
     $string = file_get_contents($result);
     Encoding::kanjiChangeOrder();
     $expected = Encoding::kanjiStrConv($file_str, 'JIS', 'kana');
     Encoding::kanjiChangeOrder();
     $this->assertEquals($string, $expected);
     unlink($result);
 }