PHP Header下载文件在IE文件名中文乱码问题

 更新时间:2016年11月25日 16:46  点击:1790
解决PHP Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。

解决方案一(我的页面是utf-8编码):

 代码如下 复制代码

    $filename = "中文.txt";
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $encoded_filename = urlencode($filename);
    $encoded_filename = str_replace("+", "%20", $encoded_filename);
    header('Content-Type: application/octet-stream');
    if (preg_match("/MSIE/", $ua)) {
    header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
    } else if (preg_match("/Firefox/", $ua)) {
    header('Content-Disposition: attachment; filename*="utf8''' . $filename . '"');
    } else {
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    }

解决方法二

将文件名先urlencode一下再放入header,如下。
代码如下:

 代码如下 复制代码
<?php
$file_name = urlencode($_REQUEST['filename']);
header("Pragma: public"); header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename='.$file_name);
echo stripslashes($_REQUEST['content']);
?>
下面我们以.txt文件为实例来介绍php读取本地文件的函数,读取文件我们可以利用fopen或file_get_contents来读取,file_get_contents更简单而fopen需要fread配合才可以显示读出的内容。

1.首先来介绍一下fopen()函数
下面我们给出了一个直接打开本地文件的代码demo,必要的地方我们都已经加上了注释:

 代码如下 复制代码

    //直接打开一个本地文件的实例代码  
    <?php  
    //假若我们本地的文件是一个名为xmlas.txt的文本  
    $filedemo = "xmlas.txt";  
    $fpdemo = fopen($filedemo,"r");  
    if ($fpdemo){  
     while(!feof($fpdemo)){  
      //1000读取的字符数  
      $datademo = fread($fpdemo, 1000);  
     }  
     fclose($fpdemo);  
    }  
    echo $datademo;  
    ?> 

2.使用file_get_contents() 函数将整个文件在一个字符串中输出:
假若我们的xmlas.txt文本文件中有这样一句话:现在的电影越来越没激情,想要全部高潮请看日本爱情

动作片!
那么我们file_get_contents() 函数的实例代码便如下:

 代码如下 复制代码

    <?php  
    echo file_get_contents("xmlas.txt");  
    //此时输出的内容便为xmlas.txt中的内容:  
    //现在的电影越来越没激情,想要全部高潮请看日本爱情动作片!  
    ?> 

3.如何读取本地的一个文件夹而不是一个单独文件:
请看下面的实例代码,在实例中我们将读取一个名为xmlas的文件夹:

 代码如下 复制代码
    <?php  
    $dirdemo = opendir('/xmlas');  
    while(($filedemo = readdir($dirdemo))!=false){  
      if ($filedemo!="." && $filedemo!="..") {   
        $nsdemo = explode('.', $filedemo);  
        echo $nsdemo[0];  
      }   
    }  
    closedir($dirdemo);  
    ?> 

4.我们还可以利用fopen来写文件

 代码如下 复制代码

/**
 *用fopen写入文件
 *@param string $filename
 *@param string $contents
 *@return boolean
 */
 
 function wirte($filename,&$contents)
 {
  $fp=fopen($filename,"wb");
  if($fp)
  {
   flock($fp,LOCK_EX);//同一时间锁定文件,只能一个人操作
   fwrite($fp,$contents);
   flock($fp,LOCK_UN);//保存数据握进行解锁文件并保存
   fclose($fp);
   return true;
  }else
  {
   return false;
  }
 }

这样我只要利用fopen配合fwrite就可以实现文件读写了。

注意:l打开文件

在打开文件文件之前,我们需要知道这个文件的路径,以及此文件是否存在。

用$_SERVER[“DOCUMENT_ROOT”]内置全局变量,来获得站点的相对路径。如下:

 代码如下 复制代码
$root = $_SERVER[“DOCUMENT_ROOT”];

 
在用函数file_exists()来检测文件是否存在。如下:

 代码如下 复制代码

If(!file_exists("$root/order.txt")){echo ‘文件不存在’;}

这样可能更合理更实用哦。

在php中date()函数是可以获取时间日期的函数,可能大家常用的就年月日了,下面我来给大分享date()函数一此不为人知的参数。

date()函数

这个函数就比较熟悉了

 代码如下 复制代码

<?php
echo("Result with date():<br />");
echo(date("l") . "<br />");
echo(date("l dS of F Y h:i:s A") . "<br />");
echo("Oct 3,1975 was on a ".date("l", mktime(0,0,0,10,3,1975))."<br />");
echo(date(DATE_RFC822) . "<br />");
echo(date(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "<br /><br />");

echo("Result with gmdate():<br />");
echo(gmdate("l") . "<br />");
echo(gmdate("l dS of F Y h:i:s A") . "<br />");
echo("Oct 3,1975 was on a ".gmdate("l", mktime(0,0,0,10,3,1975))."<br />");
echo(gmdate(DATE_RFC822) . "<br />");
echo(gmdate(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "<br />");
?>

Result with date():
Wednesday
Wednesday 22nd of December 2010 02:36:18 AM
Oct 3,1975 was on a Friday
Wed, 22 Dec 10 02:36:18 +0000
1975-10-03T00:00:00+00:00

Result with gmdate():
Wednesday
Wednesday 22nd of December 2010 02:36:18 AM
Oct 3,1975 was on a Friday
Wed, 22 Dec 10 02:36:18 +0000
1975-10-03T00:00:00+00:00

附上PHP手册里的date()函数参数说明

a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365" 

本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法,希望对入门者有所帮助。

php文件夹操作函数


string basename ( string path [, string suffix] )

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。

在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

 

string dirname ( string path )

 

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

 

array pathinfo ( string path [, int options] )

 

pathinfo() 返回一个联合数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。

可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。

 

string realpath ( string path )

 

realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./’, ‘/../’ 以及多余的 ‘/’ 并返回规范化后的绝对路径名。返回的路径中没有符号连接,’/./’ 或 ‘/../’ 成分。

realpath() 失败时返回 FALSE,比如说文件不存在的话。在 BSD 系统上,如果仅仅是 path 不存在的话,PHP 并不会像其它系统那样返回 FALSE。

 


bool is_dir ( string filename )

 

如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。

注: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

 


resource opendir ( string path [, resource context] )

 

打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。


string readdir ( resource dir_handle )

 

返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。


void closedir ( resource dir_handle )

 

关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。


void rewinddir ( resource dir_handle )

 

将 dir_handle 指定的目录流重置到目录的开头。

 


array glob ( string pattern [, int flags] )

 

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。

返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE。

 

有效标记为: 

GLOB_MARK - 在每个返回的项目中加一个斜线
GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE - 反斜线不转义元字符
GLOB_BRACE - 扩充 {a,b,c} 来匹配 ‘a’,’b’ 或 ‘c’
GLOB_ONLYDIR - 仅返回与模式匹配的目录项
 

注: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。

GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误

注: GLOB_ERR 是 PHP 5.1 添加的。

 

php文件目录操作


新建文件

1、先确定要写入文件的内容

$content = '你好';

2、打开这个文件(系统会自动建立这个空文件)

//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件’,$fp下面要用到,表示指向某个打开的文件。

$fp = fopen('../file.txt', 'w');

3、将内容字符串写入文件

//$fp告诉系统要写入的文件,写入的内容是$content

fwrite($fp, $content);

4、关闭文件

fclose($fp); 

说明:PHP5中提供了更方便的函数file_put_contents,上面的4步可以这样完成:

$content = '你好';

file_put_contents('file.txt',$content);

 

删除文件

//删除当前目录下的arch目录下的文件abc.txt

unlink('arch/abc.txt');

说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:

$deleteResult = unlink('arch/abc.txt');

 

获取文件内容

//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。

$content = file_get_contents('../file.txt');

 

修改文件内容

操作方法与新建内容基本一样

 

重命名文件或目录

//将当前目录下的子目录a下面的文件1.gif重命名为2.gif。

rename('/a/1.gif', '/a/2.gif');

说明:对目录也一样。系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否重命名成功。

$renameResult = rename('/a/1.gif', '/a/2.gif');

如果要移动文件或目录,只要将重命名后的路径设置为新的路径就可以了:

//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。

rename('/a/1.gif', '/b/2.gif');

不过要注意,如果目录b不存在,就会移动失败。

 

复制文件

//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。

copy('/a/1.gif', '/b/1.gif');

说明:不能对目录进行此项操作。

如果目标文件(上面的/b/1.gif)已经存在,原来的文件将被覆盖。

系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否复制成功。

$copyResult = copy('/a/1.gif', '/b/1.gif');

 

移动文件或目录

操作方法和重命名一样

 

文件或目录是否存在

//检查上级目录下的文件logo.jpg是否存在。

$existResult = file_exists('../logo.jpg');

说明:如果文件存在系统返回true,否则返回false。可以对目录进行同样的操作。

 

获取文件大小

//获取上级目录下的文件logo.png的大小。

$size = filesize('../logo.png');

说明:系统会返回一个数字,表示文件的大小是多少字节(bytes)。

 

新建目录

//在当前目录下的目录a下面新建目录b。

mkdir('/a/b');

说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:

$mkResult = mkdir('/a/b');

 

删除目录

//删除当前目录下的目录a下面的子目录b。

rmdir('/a/b');

说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录

系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:

$deleteResult = rmdir('/a/b');

 

获取目录中的所有文件名

1、先打开要操作的目录,并用一个变量指向它

//打开当前目录下的目录pic下的子目录common。

$handler = opendir('pic/common');

2、循环的读取目录下的所有文件

/*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环*/

while( ($filename = readdir($handler)) !== false )  {

      3、目录下都会有两个文件,名字为'.'和‘..’,不要对他们进行操作

      if($filename != "." && $filename != "..") {

      4、进行处理

      //这里简单的用echo来输出文件名

      echo $filename;

      }

}

5、关闭目录

closedir($handler);

 

对象是否是目录

//检查上级目录下的目标对象logo.jpg是否是目录。

$checkResult = is_dir('../logo.jpg');

说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。

 

对象是否是文件

//检查上级目录下的目标对象logo.jpg是否是文件。

$checkResult = is_file('../logo.jpg');

说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。

在php中empty(), isset(), is_null()三个函数在很多朋友看来都差不多,但我们简单想一下好像又不同,一个空值,一个是否是一个变量,是否为null,下面我来举例来说明。

很多人对于 PHP 的 empty(),isset() 及 is_null() 三个函数的用法比较模糊,网上的资料也很多,但未必能讲的清楚,下面给出一个测试实例,对于理解这三个函数的区别会有很大的好处。

 

测试的类型如下:

 <?php
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();
?> 

 
empty()
 

 代码如下 复制代码

<?php
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));
?>

// 输出
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true) 

从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。

  isset()
 

 代码如下 复制代码

<?php
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));
?>

// 输出
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true) 

可以看出isset()只能用来判断是否为NULL和未定义。

 
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:

 代码如下 复制代码

$id=0;
    empty($id)?print "It's empty .":print "It's $id .";
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .


这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。

当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:

 代码如下 复制代码


if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1


可分开运行以下代码检测上述推断:

 代码如下 复制代码


 if(empty($id)) $id=1;
    print $id; // 得到 1

    if(!isset($id)) $id=1;
print $id; //得到 0

 

is_null()
 

 代码如下 复制代码

<?php
var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));
?>

// 输出
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false) 

is_null 字面意思了。

 由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。

后来给大家附一张表

下面一张表可以很清楚的说明他们之间的关系:

变量                             empty          is_null          isset
$a=””                          true               false              true
$a=null                      true               true              false
var $a                         true              true               false
$a=array()               true               false              true
$a=false                    true               false              true
$a=15                        false              false               true
$a=1                           false              false               true
$a=0                          true               false               true
$a=”0”                      true               false                true
$a=”true”                false               false              true
$a=”false”               false               false               true

[!--infotagslink--]

相关文章

  • php生成二维码中文乱码问题解决方法

    最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个...2016-11-25
  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • cmd下过滤文件名称的两种方法

    这篇文章主要介绍了cmd下过滤文件名称的两种方法,需要的朋友可以参考下...2020-06-30
  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • C#读取中文文件出现乱码的解决方法

    这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Mysql在debian系统中不能插入中文的终极解决方案

    在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • PHP json_encode() 函数详解及中文乱码问题

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<&#63;php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • 使用GetInvalidFileNameChars生成文件名

    这篇文章主要介绍了一个很实用的函数Path.GetInvalidFileNameChars(),他可以很方便的生成一个有效的文件名称...2020-06-25
  • php中iconv编码转换来解决中文乱码的问题

    用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些 代码如下 复制代码 ...2016-11-25
  • php mail发邮件标题中文乱码的问题解决办法

    本文章来给大家介绍php mail发邮件标题中文乱码的问题解决办法,希望到此类问题的朋友可进入参考。 当使用下面的PHP语句发送电子邮件的时候,如果编码和接收邮箱编码...2016-11-25
  • FlashFXP连接站点中文显示乱码解决办法

    FlashFXP是一款常用的服务器客户连接软件了,我们可以通过FlashFXP来上传或下载文件,但有一些朋友使用FlashFXP时碰到中文目录或文件名乱码问题,那么要如何来解决呢?具体就...2016-10-10
  • php中把unicode编码转化为中文

    小编在网上看到最多的就是汉字转换unicode编码了,今天我们看到一个反过来的操作就是把unicode转换成中文了,下面一起来看看 这两天帮别人开发微信平台好友板块,存...2016-11-25
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • C#编程实现获取文件夹中所有文件的文件名

    这篇文章主要介绍了C#编程实现获取文件夹中所有文件的文件名,可实现获取特定目录下制定类型文件名称的功能,涉及C#针对文件与目录的遍历、查询等操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25