如何使用PHP读取文本文件内容

如何使用PHP读取文本文件内容,第1张

利用PHP读取文本文件的内容,其实很简单,我们只需要掌握函数“file_get_contents()”的使用就可以了。下面,小编将作详细的介绍。

工具/原料

电脑一台

WAMP开发环境

方法/步骤

file_get_content()函数介绍。使用file_get_contents()获取txt文件的内容,具体参数说明如下:

2

具体实例说明。从文本文件tst.txt中读取里面的内容并显示在浏览器中,具体代码和图示如下:

<?php

$file = 'tst.txt'

$content = file_get_contents($file)//读取文件中的内容

echo $content

?>

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。\x0d\x0a\x0d\x0a1. 以.csv格式读取\x0d\x0a\x0d\x0a将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。\x0d\x0a\x0d\x0a优点:跨平台,效率比较高、可以读写。\x0d\x0a\x0d\x0a缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。\x0d\x0a\x0d\x0aPHP有自带的分析.csv函数:fgetcsv\x0d\x0a\x0d\x0aarray fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )\x0d\x0a\x0d\x0ahandle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。\x0d\x0a\x0d\x0alength (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。\x0d\x0a\x0d\x0adelimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。\x0d\x0a\x0d\x0aenclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。\x0d\x0a\x0d\x0afgetcsv() 出错时返回 FALSE,包括碰到文件结束时。\x0d\x0a\x0d\x0a注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。\x0d\x0a\x0d\x0a当然也可以自己手动分析字符串。\x0d\x0a\x0d\x0a还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。\x0d\x0a\x0d\x0a2. ODBC链接数据源\x0d\x0a\x0d\x0a优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。\x0d\x0a\x0d\x0a缺点:值支持windows服务器\x0d\x0a\x0d\x0a3. PHP自定义类\x0d\x0a\x0d\x0a优点:跨平台。某些类支持写 *** 作。支持.xls二进制文件\x0d\x0a\x0d\x0a常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。\x0d\x0a\x0d\x0aphpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。\x0d\x0a\x0d\x0a该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。\x0d\x0a\x0d\x0a不过我下载回来的 (版本 2009-03-30),有两点要注意:\x0d\x0a\x0d\x0areader.php 中的下面这行要修改\x0d\x0a\x0d\x0a将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’\x0d\x0a\x0d\x0a改为 require_once ‘oleread.inc’\x0d\x0a\x0d\x0aexample.php 中\x0d\x0a\x0d\x0a修改 $data->setOutputEncoding(’CP1251′)\x0d\x0a\x0d\x0a为 $data->setOutputEncoding(’CP936′)\x0d\x0a\x0d\x0aexample2.php 中\x0d\x0a\x0d\x0a修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]))\x0d\x0a\x0d\x0a为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]))\x0d\x0a\x0d\x0a不然中文会有问题。\x0d\x0a\x0d\x0a繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。\x0d\x0a\x0d\x0a修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。

示例代码1: 用file_get_contents 以get方式获取内容

代码如下:

<?php

$url=''

$html=file_get_contents($url)

//print_r($http_response_header)

ec($html)

printhr()

printarr($http_response_header)

printhr()

?>

示例代码2: 用fopen打开url, 以get方式获取内容

代码如下:

<?

$fp=fopen($url,'r')

printarr(stream_get_meta_data($fp))

printhr()

while(!feof($fp)){

$result.=fgets($fp,1024)

}

echo"url body:$result"

printhr()

fclose($fp)

?>

示例代码3:用file_get_contents函数,以post方式获取url

代码如下:

<?php

$data=array('foo'=>'bar')

$data=http_build_query($data)

$opts=array(

'http'=>array(

'method'=>'POST',

'header'=>"Content-type: application/x-www-form-urlencodedrn".

"Content-Length: ".strlen($data)."rn",

'content'=>$data

),

)

$context=stream_context_create($opts)

$html=file_get_contents('',false,$context)

echo$html

?>

示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body

代码如下:

<?

functionget_url($url,$cookie=false){

$url=parse_url($url)

$query=$url[path]."?".$url[query]

ec("Query:".$query)

$fp=fsockopen($url[host],$url[port]?$url[port]:80,$errno,$errstr,30)

if(!$fp){

returnfalse

}else{

$request="GET$queryHTTP/1.1rn"

$request.="Host:$url[host]rn"

$request.="Connection: Closern"

if($cookie)$request.="Cookie:$cookien"

$request.="rn"

fwrite($fp,$request)

while(!@feof($fp)){

$result.=@fgets($fp,1024)

}

fclose($fp)

return$result

}

}

//获取url的html部分,去掉header

functionGetUrlHTML($url,$cookie=false){

$rowdata=get_url($url,$cookie)

if($rowdata)

{

$body=stristr($rowdata,"rnrn")

$body=substr($body,4,strlen($body))

return$body

}

returnfalse

}

?>

示例代码5:用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body

代码如下:

<?

functionHTTP_Post($URL,$data,$cookie,$referrer=""){

// parsing the given URL

$URL_Info=parse_url($URL)

// Building referrer

if($referrer=="")// if not given use this script. as referrer

$referrer="111"

// making string from $data

foreach($dataas$key=>$value)

$values[]="$key=".urlencode($value)

$data_string=implode("&",$values)

// Find out which port is needed - if not given use standard (=80)

if(!isset($URL_Info["port"]))

$URL_Info["port"]=80

// building POST-request:

$request.="POST ".$URL_Info["path"]." HTTP/1.1n"

$request.="Host: ".$URL_Info["host"]."n"

$request.="Referer:$referern"

$request.="Content-type: application/x-www-form-urlencodedn"

$request.="Content-length: ".strlen($data_string)."n"

$request.="Connection: closen"

$request.="Cookie:$cookien"

$request.="n"

$request.=$data_string."n"

$fp=fsockopen($URL_Info["host"],$URL_Info["port"])

fputs($fp,$request)

while(!feof($fp)){

$result.=fgets($fp,1024)

}

fclose($fp)

return$result

}

printhr()

?>

示例代码6:使用curl库,使用curl库之前,你可能需要查看一下php.ini,查看是否已经打开了curl扩展

代码如下:

<?

$ch = curl_init()

$timeout = 5

curl_setopt ($ch, CURLOPT_URL, '')

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1)

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout)

$file_contents = curl_exec($ch)

curl_close($ch)

echo $file_contents

?>

关于curl库:

curl官方网站

curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧

复制代码 代码如下:

<?

functionprintarr(array$arr)

{

echo"<br>Row field count: ".count($arr)."<br>"

foreach($arras$key=>$value)

{

echo"$key=$value <br>"

}

}

?>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12068906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存