Maison  >  Article  >  développement back-end  >  PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats

PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats

不言
不言original
2018-08-18 17:40:272744parcourir

Le contenu de cet article concerne PHP utilisant open et fwrite pour exporter des fichiers (code) dans différents formats. Les amis dans le besoin peuvent s'y référer.

Rendu

PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats
PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats
PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats
PHP utilise open et fwrite pour exporter des fichiers (code) dans plusieurs formats

Analyse du code source

<?php
/**
 * Created by PhpStorm.
 * User: Jason0727
 * Date: 2018/8/9
 * Time: 14:48
 */header("Content-Type: text/html;charset=utf-8");//定义文件名
 $fileName = "测试文件名_" . date(&#39;YmdHis&#39;);//文件名中间不能有空格//文件名转码,以防乱码
 $fileName = iconv(&#39;UTF-8&#39;,&#39;GBK&#39;,$fileName);///文件后缀
 $ext = ".csv";//$ext = ".txt";//字段间的拼接符号//
 $dot = "|";$dot = ",";//打开文件句柄,记得赋权,否则报错
 $fp = fopen("./files/" . $fileName . $ext,"a") or die("unable to open file!");//是否需要列表名称,0=>不需要 1需要,默认为1
 $is_need_headerList = 1;//检测是否需要
 headerListif($is_need_headerList == 1){    //定义列表名称
    $headerList = [&#39;列表1&#39;,&#39;列表2&#39;,&#39;列表3&#39;];    //初始化写入文件的字符串
    $headerTxt = "";    //列表名称转码
    foreach ($headerList as $v){        
    $headerTxt .= $v. $dot;
    }    
    $headerTxt = rtrim($headerTxt,$dot)."\n";    //将列表名称写入文件句柄
    fwrite($fp, $headerTxt);
}//初始化数组数据$data = [
    [&#39;id&#39;=>&#39;值1&#39;,&#39;name&#39;=>&#39;值2&#39;,&#39;hobby&#39;=>&#39;值3&#39;],
    [&#39;id&#39;=>&#39;值11&#39;,&#39;name&#39;=>&#39;值22&#39;,&#39;hobby&#39;=>&#39;值33&#39;],
    [&#39;id&#39;=>&#39;值111&#39;,&#39;name&#39;=>&#39;值222&#39;,&#39;hobby&#39;=>&#39;值333&#39;]
];
//循环写入数据//初始化数组的总数
$count = count($data);//循环次数
$limit = 0;foreach ($data as $v){    
$limit++;    
$txt = $v[&#39;id&#39;] .$dot . $v[&#39;name&#39;] .$dot .$v[&#39;hobby&#39;];    
if($count != $limit)//避免最后一次换行
        $txt .= $dot .PHP_EOL;
    fwrite($fp,$txt);
}
fclose($fp);

Analyse des problèmes courants

  1. La chaîne contient des caractères spéciaux lors de la conversion de l'encodage, //IGNORE doit être défini, sinon une erreur sera signalée

$c = "测试•字符传换•五一快乐!";echo iconv(&#39;UTF-8&#39;,&#39;GBK//IGNORE&#39;,$c);//测试字符传换五一快乐!echo iconv(&#39;UTF-8&#39;,&#39;GBK&#39;,$c);//Detected an illegal character in input string
  1. La chaîne numérique sera formatée et des caractères invisibles devront être ajoutés pour la normaliser, tels que : "t"

  2. Convertir Problèmes de code, circonstances particulières, manipulation particulière, selon la situation

Lien : https://pan.baidu.com/s/1SFB3lPooUYl-cVv4QovNkA Mot de passe : 2o6b

Recommandations associées :

Code d'implémentation pour PHP pour exporter des fichiers Excel au format csv

Comment PHP implémente la requête floue (code graphique)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn