php的cvs
① php怎样读取excel表格内容
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。x0dx0ax0dx0a1. 以.csv格式读取x0dx0ax0dx0a将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。x0dx0ax0dx0a优点:跨平台,效率比较高、可以读写。x0dx0ax0dx0a缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。x0dx0ax0dx0aPHP有自带的分析.csv函数:fgetcsvx0dx0ax0dx0aarray fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )x0dx0ax0dx0ahandle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。x0dx0ax0dx0alength (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。x0dx0ax0dx0adelimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。x0dx0ax0dx0aenclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。x0dx0ax0dx0afgetcsv() 出错时返回 FALSE,包括碰到文件结束时。x0dx0ax0dx0a注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。x0dx0ax0dx0a当然也可以自己手动分析字符串。x0dx0ax0dx0a还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。x0dx0ax0dx0a2. ODBC链接数据源x0dx0ax0dx0a优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。x0dx0ax0dx0a缺点:值支持windows服务器x0dx0ax0dx0a3. PHP自定义类x0dx0ax0dx0a优点:跨平台。某些类支持写操作。支持.xls二进制文件x0dx0ax0dx0a常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。x0dx0ax0dx0aphpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。x0dx0ax0dx0a该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。x0dx0ax0dx0a不过我下载回来的 (版本 2009-03-30),有两点要注意:x0dx0ax0dx0areader.php 中的下面这行要修改x0dx0ax0dx0a将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;x0dx0ax0dx0a改为 require_once ‘oleread.inc’;x0dx0ax0dx0aexample.php 中x0dx0ax0dx0a修改 $data->setOutputEncoding(’CP1251′);x0dx0ax0dx0a为 $data->setOutputEncoding(’CP936′);x0dx0ax0dx0aexample2.php 中x0dx0ax0dx0a修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a不然中文会有问题。x0dx0ax0dx0a繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。x0dx0ax0dx0a修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。
② php 中cvs有什么用
CVS 表面上讲叫做版本控制系统。
在多人合作开发一个项目时,很有可能会出现这样的情况:一个程序员将这个页面代码进行了后部的更改,而这个时候,另一个程序员也在对这个页面进行着更改,但他更改的是这个页面的前半部分。
然后第一个程序员把文件保存好,这时,第二个程序员也做好了他的工作,对这个文件进行了保存。
你会发现什么现象?这个时候第一个程序员的工作白做了,被第二个程序员的文件给覆盖掉了!!
如果使用了CVS就不会出现这样的情况。
CVS会将每个程序员的文件单独保存,当所有的程序员完成所有页面后,它再对最终的文件进行合成保存,完美地解决了上述可怕的问题。
可以说,CVS是团队开发中的一个协作程序,起到了一个统筹协作的中间作用。
相信这样讲你一定可以明白了。
当然,如果一个人开发的话,CVS也可以起到备份作用的。
③ php对cvs的一个操作问题
首先有一个问题,那就是根据楼主的意思,最后的结果页应该是1,牙膏
3,鼠标
5,硬盘
不会有4,键盘;
同时,根据楼主的意思(直接把f2 (5,硬盘) 加入到f1中)得出的结果就是原f2中的内容,明显这个逻辑关系是错误的,但是还是根据楼主的要求写个代码应该包括了楼主的需求,楼主具体想要干什么,自己改改就好了。或者直接hi我。
完整代码如下,经过测试完全没有问题。
<?
//将文件中的内容生成数组。
function get_name($str){
$str_arr = explode("\n",$str);
if($str_arr){
foreach($str_arr as $str_value){
$str_value_a = explode(",",$str_value);
$str_a[$str_value_a[0]] = $str_value_a[1];
}
}
return $str_a;
}
$str1 = file_get_contents("f1.cvs");
$str2 = file_get_contents("f2.cvs");
$str_a1 = get_name($str1);
$str_a2 = get_name($str2);
$str_a3 = array_diff($str_a2,$str_a1);//得出f2中有的,f1中没有的;
//去除f1中的数据默认隐藏,需要自己打开就可以了
/*
$str_a5 = array_diff($str_a1,$str_a2);//得出f1中有的,f2中没有的;
foreach ($str_a5 as $key1=>$value1){
unset($str_a1[$key1]);
}
print_r($str_a1);
*/
$str_a4 = array_intersect($str_a1,$str_a2);//得出f2与f1中都有的
$str_z = $str_a4 + $str_a3;//合并数组
$outstr = "";
foreach($str_z as $key=>$value_z){
$outstr .= $key.",".$value_z."\n";
}
$outstr = substr($outstr,0,-1);//去掉最后的\n
if ($fp = fopen("f3.cvs","w")) {
fputs($fp,$outstr);
fclose($fp);
}else{
echo "<br>生成失败";
}
?>
以上代码中f1的内容为:
1,牙膏
2,手表
3,鼠标
4,键盘
f2的内容为:
1,牙膏
3,鼠标
5,硬盘
④ phpadmin怎么导入cvs文件
phpmyadmin 导入 csv 的用户界面如下图:
以下是相关的注意事项及说明:
1、关于 CSV 和 CSV using LOAD DATA
这两种都可以导入CSV格式的文件数据,区别在于:当文件比较大时用 CSV 可能 script 会超时,这时就得使用 LOAD DATA。
2、列名
列名就是你在导出时打钩的“将字段名称放在首行”,实际就是用分隔符分开的字段名集合,就是填写所有字段名,中间用分隔字段的字符隔开。
3、Ignore plicate rows
这个选项的作用是忽略相同的行,意为相同的行只导入一行数据。4、转义字段的字符是指数据里面可能含有特殊字符串,如分隔字段的字符、包裹字段的字符还有SQL保留字符,这些得先转义否则会出错,按默认的设置是没什么问题的。
⑤ php操作cvs文件
给你例子你:
<?php
$row=1;
$handle=fopen("test.csv","r");
while($data=fgetcsv($handle,1000,",")){
$num=count($data);
echo"<p>$numfieldsinline$row:<br> ";
$row++;
for($c=0;$c<$num;$c++){
echo$data[$c]."<br> ";
}
}
fclose($handle);
?>
test.csv是文件名,不懂可以追问。
⑥ php使用import把cvs文件导入数据库显示500错误页面,求助!
500一般是程序内错误,看下php的错误日志,一般500都有错误日志的,看具体的报错对应的怎么去解决,大概的猜测应该是 目录路径权限问题,不过具体还要看日志!