导航:首页 > 编程语言 > phpcsv类

phpcsv类

发布时间:2022-03-05 00:59:24

A. 将php生成CSV文件2

发给你的程序里,这个已经做好了。

B. PHP操作CSV文件的问题,请教大家!

给个思路:
1、读取csv文件,把数据读到一个数组中(核心function是fgetcsv)
2、操作这个数组来获取你要的结果

核心思路给你了。具体代码你自己写写看

C. 如何解析包含序列化的PHP的CSV文件

在Unity3D中可以使用使用继承自scriptObject类并添加CreateAssetMenu属性方便实现类的序列化,但值得注意的是这种方式并不支持程序打包之后数据的保存。
当然常用的还有xml和json的方式来保存类的信息,在需要的时候加载出来,这方面就不多说了。但是直观的来说,表最适合一些简单的数据类型的记录,键值对最简单。
特别是一个一些程序的配制或者标题对应于一段富文本来说,这样的信息最适合保存在csv文件中。
状态模式:(例1)
面对象常的设计模式中,状态模式比较常用的一种。一个类的某个属性有多种状态,而这个类实现通用的方法,在不同的状态下会产生不同的后果,不同的状态分别抽象为一个个独立的类,其内部可以触发整体状态的改变。只需要考虑到不同状态下具体的实现和状态的转换,而大大简化了用户调用的接口。
CSV文件:(例2)
利用excel,可以进行csv文件的编辑,可以方便的将只包含文字信息的表格导出为csv文件,并且可以进行重复编辑。
程序中要使用csv,先要将其文本文件的格式进行透彻分析。
测试一、 先建立一个简单的表格如图所示(没有引号):
然后利用notepad打开可以看到下面这样的格式:
id,name,sex
这种情况下,要解析实在是太容易了,要什么设计模式...
测试二、填写一些复杂的数据试试(有引号):
notepad打开:
id,name,sex
1,小名:"小艺",girl
这种情况下,貌似也不太复杂,只要用“,”分解不就好了?
测试三、更为复杂的信息:
notepad打开试试:
id,name,sex
1,"小名:""小艺"",大名:""杨彬艺""",girl
这下坏了,直接用,分解是不可能的,特别是对于更为复杂的一大段文字信息。
测试四、段内还有换行呢!
notepad内信息如下:
id,name,sex
1,"小名:""小艺""
大名:""杨彬艺""",girl
真的换行了哦,原来以为可以readline就可以读取出一组数据的方式也行不通了...
程序接口设计:
要将程序设计为通用易用,不得不遵循接口隔离的原则,尽量简化类的接口。要实现程序的面对象特性,还要将每个类的功能设计得相对单一,以降低类之前的偶合。
首先设计的最,最外层CsvLoaderManager,这应该是一个单例,方便全局使用并且能使用一些MonoBehaiver的方法,其主要的功能就是加载和保存csv文件。
其次要设计的,ParserCSV,其主要的功能是将csv文本信息转换为一个二维数组。
然后设计的是一个状态机ParserStateMachine,读取遇到的一个字符信息。
public class ParserStateMachine
{
public LineStartState LineStartState;
public ValueStartState ValueStartState;
public ValueState ValueState;
public QuotedValueState QuotedValueState;public QuoteState QuoteState;
private ParserState currState;
public ParserContext context;
public const char CommaCharacter = ',';
public const char QuoteCharacter = '"';
public bool TrimTrailingEmptyLines;
public int MaxColumnsToRead;
public ParserStateMachine(bool TrimTrailingEmptyLines = false,int MaxColumnsToRead = 0){
this.TrimTrailingEmptyLines = TrimTrailingEmptyLines;this.MaxColumnsToRead = MaxColumnsToRead;context = new global::ParserContext();
LineStartState = new LineStartState(this);ValueStartState = new ValueStartState(this);ValueState = new ValueState(this);
QuotedValueState = new QuotedValueState(this);QuoteState = new QuoteState(this);
}
public void SetState(ParserState currState){
this.currState = currState;
}
public void AnyChar(char ch)
{
currState.AnyChar(ch);
}
public void Comma()
{
currState.Comma();
}
public void EndOfLine()
{
currState.EndOfLine();
}
public void Quote()
{
currState.Quote();
}
}
然后是抽象的状态类ParserState,和具体的LineStartState,ValueStartState,ValueState,QuotedValueState,QuoteState 这五种状态(分别是换行状态、值开始状态、值状态、引号内值状态、引号状态);最后是将二得到的二维数据转换为具体的类的,因为每个类者有相似的转换方法,可以写一个模板类,用编辑器扩展生成一个具体的类并继承于一个抽象的CSVTable。
以上的状态模式只适用于数据加载到具体类中,要实现一个将数据转换为csv信息的方式,并不是简单的反过来写就行。
具体实现参见github上的源码
https://github.com/zouhunter/CSVConfig
注意事项:
1、 csv文件利用excel打开之后格式会发生变化,程序中使用时,需要提前将格式转换为UTF_8.

D. php上传文件是,判断是否csv文件的文件类型怎么写

$_FILES接收到文件信息是个数组。

其中$_FILES['myFile']['name']客户端文件的原名称,

您用‘.’来分割$_FILES['myFile']['name']分成一个索引数组,这个数组的最后一个值就是文件的扩展名。

或者你从最后一个“.”位置截取$_FILES['myFile']['name'],截取到最后。得到的结果也是文件的扩展名;

$_FILES['myFile']['type']得到的是文件的 MIME类型,这个并不能很好的反映文件的扩展名,

例如:

MIME类型为“text/html”,这个类型对应.html .htm .stm三种文件扩展名

MIME类型为“text/plain”,对应的是.c .txt .h .bas四种文件扩展名


E. php 生成csv文件并提示保存

<?php
//文件名
$filename="test.csv";

//数据(具体的根据需要做处理,如果是从数据库查询,原理与此类似,只需设置好写入格式和数据即可。
$data="测试csv";

//设置header
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');header('Pragma:public');
echo$data;
?>

F. php 生成 csv文件

$filename="export_".date('Ymd').".csv";
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$filename.'"');
header('Cache-Control:max-age=0');

//写入你的查询代码

$fp=fopen('php://output','a');
$print_hea=array("姓名","年龄","性别");
fputcsv($fp,$print_hea);

//下面是你的查询结果代码,把结果循环在数组中后使用
fputcsv($fp,$print_hea_new);

G. php csv文件和excel文件的区别

其实最大的一个区别,PHP中有自带的csv函数,可以直接拿来使用,而Excel文件需要重新写入。你这个问题我之前测试过一个大数据,股票数据文件,股票数据文件用csv来保存的,将csv文件的数据直接保存在数据库里很便捷。而excel文件保存的时候,会出现乱码的问题,总之,文本文件和二进制文件保存方式是有区别的。建议在项目用csv文件格式进行导入导出数据。

H. php 解析csv 中文

这个一般都是因为编码问题,你的PHP文件是什么编码方式,数据库的字段是什么编码方式,CSV是什么编码方式,MYSQL会话是什么编码方式,这些要求统一。

I. php 导出csv时如何设置属性,合并单元格之类的。。

CSV文件本身就是不带格式符号的纯文字,无法直接在PHP中控制单元格合并这样的事情,我觉得你可以用html代码生成execl能直接读的文档比较好

$result=mysql_query("select*fromstudentorderbyidasc");
$str="<tr><td>姓名</td><td>性别</td><td>年龄</td></tr> ";
$str=iconv('utf-8','gb2312',$str);
while($row=mysql_fetch_array($result)){
$name=iconv('utf-8','gb2312',$row['name']);
$sex=iconv('utf-8','gb2312',$row['sex']);
//要控制合并啥的,在下边修改即可
$str.="<tr><td>".$name."</td><td>".$sex."</td><td>".$row['age']."</td></tr>";
}

$filename=date('Ymd').'.xls';
export_xls($filename,$str);


functionexport_xls($filename,$string){
//可以修改样式,控制字号、字体、表格线、对齐方式、表格宽度、单元格padding等,在下边的<style></style>
$header="<htmlxmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <metahttp-equiv="Content-type"content="text/html;charset=GBK"/> <style> td{padding:4px;mso-ignore:padding;color:windowtext;font-size:10.0pt;font-weight:400;font-style:normal;text-decoration:none;font-family:Arial;mso-generic-font-family:auto;mso-font-charset:134;mso-number-format:General;text-align:general;vertical-align:middle;border:.5ptsolidwindowtext;mso-background-source:auto;mso-pattern:auto;mso-protection:lockedvisible;white-space:nowrap;mso-rotate:0;} </style> </head><body> <tablex:strborder=0cellpadding=0cellspacing=0width=100%style="border-collapse:collapse">";
$footer="</table> </body></html>";
$exportString=$header.$string.$footer;

header("Cache-Control:public");
header("Pragma:public");
header("Content-type:Content-type:application/vnd.ms-excel");
header("Accept-Ranges:bytes");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-length:".strlen($exportString));
echo$exportString;
exit;
}
阅读全文

与phpcsv类相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:542
可以中文解压的解压软件 浏览:595
安卓卸载组件应用怎么安装 浏览:915
使用面向对象编程的方式 浏览:342
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:435
淮安数据加密 浏览:295
魔高一丈指标源码 浏览:984
松下php研究所 浏览:171
c回调java 浏览:403
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315