fwrite函数可以把字符串写入文件,文件最终的编码取决于要写入的字符串编码。如果字符串是utf-8,那么最终的文件就是utf-8编码;如果字符串是gb2312,那么最终的文件就是gb2312.
下面的示例代码,演示了重复打开、转换编码、保存同一个文件的过程,每执行一次操作,用记事本打开文件(a.txt),查看它的编码是否在utf-8和gb2312之间变换。
/**
* 判断字符串是否为utf-8格式
*
* @param string $string
* @return 0或1
*/
function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}
/**
* 读文件
*
* @param string $source
* @return string / false
*/
function fileToStr($source) {
if (file_exists($source)) {
$str = file_get_contents($source);
return $str;
} else {
return false;
}
}
/*----------诸函数----------*/
/**
* 用字符串覆盖指定的文件
*
* @param string $destination
* @param string $contents
*/
function saveFile($destination, $contents) {
$tp = @fopen($destination, 'wb');
fwrite($tp, $contents);
fclose($tp);
}
//测试程序开始
$str = fileToStr('a.txt');
if(is_utf8($str)) {
$str = iconv('utf-8', 'gb2312', $str);
} else {
$str = iconv('gb2312', 'utf-8', $str);
}
echo is_utf8($str);
echo "\n";
saveFile('a.txt', $str); //每打开、再保存一次a.txt,它的编码将变化一次。
分享到:
相关推荐
<?...“test.txt”, “wb”)... 您可能感兴趣的文章:解析关于java,php以及html的所有文件编码与乱码的处理方法汇总PHP转换文件夹下所有文件编码的实现代码PHP编码规范之注释和文件结构说明php实现文件编码批量转换
有了这个 就可以用最基本的fopen fwrite读写Tiff了。
C语言中可以使用标准库函数(如fopen、fwrite、fread等)来读取和写入二进制文件。 在C语言中,使用文件指针(File Pointer)来表示文件,通过文件指针可以进行文件的打开、关闭、读取和写入等操作。文件操作包括...
c语言文件指针,fscanf,fprintf,fseek,fwrite,fread等用法详解
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为: ASC码: ...
fwrite(将数据写至文件流) 96 10.17 97 getc(由文件中读取一个字符) 97 10.18 97 getchar(由标准输入设备内读进一字符) 97 10.19 98 gets(由标准输入设备内读进一字符串) 98 10.20 98 mktemp(产生唯一的...
一般在php中会使用fopen进行生成文件,但是当文件名存在中文时保存文件会出现中文乱码。 源代码: <?php $fileName = __DIR__ . '\测试.txt'; $fp = fopen($fileName, 'w'); fwrite($fp, '这是中文内容'...
相信很多人在使用PHP的过程中都遇到过生成文件乱码的情况,不论是使用fwrite还是file_put_contents写入。可能你会先尝试从编码入手尝试解决,但最终的结果往往是不理想的,尽管我们都将其转换为了UTF-8编码了… 那么...
2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个...
2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个...
第19章 与文件系统和服务器的交互 19.1 文件上载 19.1.1 文件上载的HTML代码 19.1.2 编写处理文件的PHP 19.1.3 避免常见上载问题 19.2 使用目录函数 19.2.1 从目录读取 19.2.2 获得当前目录的信息 19.2.3 创建和删除...
分析可以知道,此木马经过了base64进行了编码,然后进行压缩。虽然做了相关的保密措施,可是php代码要执行,其最终要生成php源代码,所以写出如下php程序对其进行解码,解压缩,写入文件。解码解压缩代码如下:复制...
可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试所有这些方面,生成excel文件,另外, ...
7.文件读写 n1道面1面面主B1 23 1) fclose(……… 23 2)fopen 23 3fseek0 .24 4)fread 24 5) fwrite(… 24 8.硬链接与软链接 25 .C++与面向对象语言 26 1.C语言基础问题… 26 GoogLe+@...
// 数据库编码,GBK,UTF8,GB2312 private $result; // 执行query命令的结果数据集 private $errLog=true; // 是否开启错误日志,默认开启 private $showErr=true; // 显示所有错误,具有安全隐患,默认开启 ...