澳门新浦京app下载php读取excel文件(.csv)实例介绍

我们浏览一些网站的时候,往往看到一些新闻是刚刚更新不久的,如果要是人工维护的话,那会是一项非常繁琐的工作。然而,我们可以通过程序来控制实现更新操作,事情就会变得很方便了(我可不是要偷懒)。
在这里,我使用PHP来实现这一功能。其原理就是根据新闻发布的时间逆序排列好,然后在一页面显示新闻连接列表,每一个连接都对应一条新闻内容网页。具体操作如下:
一、首先,在你的站点下建立一个目录,将编辑好的新闻页都保存在此目录下,将来所有的新闻页都放入这里,方便维护。新闻页格式为超文本方式。
二、编写程序,实现新闻自动更新功能 fclose($fr);if($time=date(Y m d
H:i,filemtime($dd->path./.$file)))//保存文件时间,以此作为排序条件{$fp[$i][filetime]=$time;}$i++;}}$i=count($fp);//保存文件数$i-=4;for($j=0;$j<$i;$j++)//按照冒泡算法排序for($k=$i;$k>$j;$k–)if($fp[$j][filetime]<=$fp[$k][filetime]){$c=$fp[$j][filetime];$fname=$fp[$j][filename];$fcontent=$fp[$j][firstline];$fp[$j][filetime]=$fp[$k][filetime];$fp[$j][filename]=$fp[$k][filename];$fp[$j][firstline]=$fp[$k][firstline];$fp[$k][filetime]=$c;//line30$fp[$k][filename]=$fname;$fp[$k][firstline]=$fcontent;}for($i=0;$i<=(count($fp)-4);$i++)//读取保存的文件信息,做好相应连接{echo
<tr><td>;echo <a
href=.$fp[$i][filename].>.$fp[$i][firstline].</a>;echo
</td><td class=font1>;echo
(.$fp[$i][filetime].)<br>/n;echo</td></tr>;}$dd->close(); ?>
三、将程序和目录放到你的网站上,然后在浏览器敲入HTTP://网站名/目录/panxu.php,能看到吗?
最后,再罗嗦几句,你的网站必须支持php功能。
而且,我仅仅提供了基本的功能,你可以增加更多的控制功能,还有页面的修饰和美化等工作,就要靠你自己了(什么?说我不负责到底?我苦…)。
好了,就先到此为止。有什么不对的地方,还请大家多指教,可发Email:zbclh@sina.com与我联系交流。

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [,
string $enclosure]]] )
handle 一个由 fopen()、popen()
或 fsockopen() 产生的有效文件指针。
length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5
中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为
0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。
enclosure
(可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP
4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出
CSV 格式的字段然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注意: CSV 文件中的空行将被返回为一个包含有单个 null
字段的数组,不会被当成错误。

 代码如下

<?php
$row = 1;
$handle = fopen(“test.csv”,”r”);
while ($data = fgetcsv($handle, 1000, “,”)) {
 $num = count($data);
 echo “
 $num fields in line $row:n”;
 $row++;
 for ($c=0; $c < $num; $c++) {
 echo $data[$c] . “n”;
 }
}
fclose($handle);
?>

例2

在百度统计和站长工具使用过程中会涉及到很多csv文件,比如我们下载百度站长工具的404统计数据,直接可以使用以下php脚本来读取csv文件然后更新提交。

php读取excel文件(.csv)参考代码:

 

 代码如下

<?php 
function getCSVdata($filename) 

    $row = 1;//第一行开始 
    if(($handle = fopen($filename, “r”)) !== false)  
    { 
        while(($dataSrc = fgetcsv($handle)) !== false)  
        { 
            $num = count($dataSrc); 
            for ($c=0; $c < $num; $c++)//列 column  
            { 
                if($row === 1)//第一行作为字段  
                { 
                    $dataName[] = $dataSrc[$c];//字段名称 
                } 
                else 
                { 
                    foreach
($dataName as $k=>$v) 
                    { 
                        if($k == $c)//对应的字段 
                        { 
                            $data[$v] = $dataSrc[$c]; 
                        } 
                    } 
                } 
            } 
            if(!empty($data)) 
            { 
                 $dataRtn[] = $data; 
                 unset($data); 
            } 
            $row++; 
        } 
        fclose($handle); 
        return $dataRtn; 
    } 

 
$aData = getCSVdata(‘all_www.111cn.net .csv’); 
 
foreach ($aData as $k=>$v ){
echo “;”;
}
?>  

PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件
常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

例3.php数据导入导出之excel

上传cvs并导入到数据库中,测试成功(部分代码不规范,如PHP_SELF那里要改写成

 

 代码如下

$_SERVER[“PHP_SELF”] )
PHP代码
<?php
$fname = $_FILES[‘MyFile’][‘name’];
$do = copy($_FILES[‘MyFile’][‘tmp_name’],$fname);
if ($do)
{
echo”导入数据成功
“;
} else {
echo “”;
}
?>
<form ENCTYPE=”multipart/form-data” ACTION=”<?php
echo””.$PHP_SELF.””; ?>” METHOD=”POST”>
导入CVS数据 <input NAME=”MyFile” TYPE=”file”> <input
VALUE=”提交” TYPE=”submit”>

</form>
<?
error_reporting(0);
//导入CSV格式的文件
$connect=mysql_connect(“localhost”,”a0530093319″,”123456″) or
die(“could not connect to database”);
mysql_select_db(“a0530093319”,$connect)
or die (mysql_error());
$fname = $_FILES[‘MyFile’][‘name’];
$handle=fopen(“$fname”,”r”);
while($data=fgetcsv($handle,10000,”,”))
{
$q=”insert into test (code,name,date) values
(‘$data[0]’,’$data[1]’,’$data[2]’)”;
mysql_query($q) or die (mysql_error());
}
fclose($handle);
?>

用php将数据库导出成excel,测试完全成功

PHP代码

 代码如下

<?php
$DB_Server = www.111cn.net;//这里是你的数据连接
$DB_Username = “a0530093319”;
$DB_Password = “123456”;
$DB_DBName = “a0530093319”;
$DB_TBLName = “member”;
$savename = date(“YmjHis”);
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
or die(“Couldn’t connect.”);
mysql_query(“Set Names ‘gb2312′”);
$file_type = “vnd.ms-excel”;
$file_ending = “xls”;
header(“Content-Type: application/$file_type”);
header(“Content-Disposition: attachment;
filename=”.$savename.”.$file_ending”);
header(“Pragma: no-cache”);
header(“Expires: 0”);
$now_date = date(“Y-m-j H:i:s”);
$title =
“数据库名:$DB_DBName,数据表:$DB_TBLName,备份日期:$now_date”;
$sql = “Select * from $DB_TBLName”;
$ALT_Db = @mysql_select_db($DB_DBName, $Connect)
or die(“Couldn’t select database”);
$result = @mysql_query($sql,$Connect)
or die(mysql_error());
echo(“$title “);
$sep = ” “;
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . ” “;
}
print(” “);
$i = 0;
while($row = mysql_fetch_row($result)) {
$schema_insert = “”;
for($j=0; $j<mysql_num_fields($result);$j++) {
if(!isset($row[$j]))
$schema_insert .= “NULL”.$sep;
elseif ($row[$j] != “”)
$schema_insert .= “$row[$j]”.$sep;
else
$schema_insert .= “”.$sep;
}
$schema_insert = str_replace($sep.”$”, “”, $schema_insert);
$schema_insert .= ” “;
print(trim($schema_insert));
print ” “;
$i++;
}
return (true);
?>

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图