//将文件添加到压缩包中

来源:2-18 文件压缩与解压缩操作

AOSOUL

2020-09-02 04:46:07

if($zip->addFile($filename)){
      $zip->close();
      @unlink($filename);
      return true;
    }else{
      return false;
    }

老师把代码改成这样以后,不就不会执行$zip->addFile了嘛。因为这个参数只作为判断了

写回答

4回答

好帮手慕小尤

2020-09-03

同学你好,1. microtime()方法中的true代表返回浮点数,uniqid()方法中的true,返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。

2. uniqid(microtime(true),true)此段代码microtime(true)是一个整体,返回浮点数,则uniqid(microtime(true),true)就是根据浮点数,生成唯一id。

3. uniqid()方法的第二参数,是规定位于返回值末尾的更多的熵。这将让结果更具唯一性。当设置为 TRUE,返回字符串为 23 个字符。默认是 FALSE,返回字符串为 13 个字符。所以将uniqid第二个参数设置为false,会返回 13 个字符。

如果解决了您的问题,请采纳,祝学习愉快~

0

好帮手慕小尤

2020-09-02

同学你好,1. move_uploaded_file(必需:规定要移动的文件,必需:规定文件的新位置) 函数将上传的文件移动到新位置。若成功则返回 true,否则返回 false。

2. microtime() 函数返回当前 Unix 时间戳的微秒数。microtime() 函数参数是可选,当设置为 TRUE 时,规定函数应该返回浮点数,否则返回字符串。默认为 FALSE。

3. md5(必需:规定要计算的字符串,可选:规定十六进制或二进制输出格式) 函数计算字符串的 MD5 散列(加密)。

    第二个参数,可选输出格式:

        TRUE - 原始 16 字符二进制格式。

        FALSE - 默认。32 字符十六进制数。

4. uniqid(可选:为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。可选:规定位于返回值末尾的更多的熵。) 函数基于以微秒计的当前时间,生成一个唯一的 ID。

如果解决了您的问题,请采纳,祝学习愉快~

0
hOSOUL
h uniqid(microtime(true),true) 这个t后面两个true分别代表了什么 uniqid如果参数是false呢
h020-09-03
共1条回复

好帮手慕小尤

2020-09-02

同学你好,代码是从上到下进行执行的,当运行到if($zip->addFile($filename))处时,会先调用addFile()方法,然后通过addFile方法的返回值,判断执行哪里的代码。所以会先执行$zip->addFile($filename),当$zip->addFile($filename)返回true。才会执行unlink($filename)。

    如果直接运行了unlink($filename),则有可能是同学在其他地方定义了unlink(),同学可重新查看一下代码。或同学可反馈全部代码,便于老师定位问题。

祝学习愉快!

0
hOSOUL
h !move_uploaded_file这个是什么函数
h020-09-02
共2条回复

好帮手慕小尤

2020-09-02

同学你好,1. addFile()从给定路径将文件添加到ZIP归档。成功时返回 TRUE , 或者在失败时返回 FALSE 。

2 .在if条件中的代码是会执行的,则当if中$zip->addFile($filename)为true时,会执行花括号中的代码,否则执行else中代码。

如果解决了您的问题,请采纳,祝学习愉快~

0
hOSOUL
h 但是$zip->addFile($filename)这一步就没有执行了,文件就直接被unlink($filename)关闭了呀
h020-09-02
共1条回复

0 学习 · 4928 问题

查看课程