分类 php技巧 下的文章

正确使用 PHP 双问号(??) 操作符,或者 null 合并运算符

由于日常使用中存在大量同时使用三元表达式和 isset() 的情况, 我们添加了 null 合并运算符 (??) 这个语法糖。如果变量存在且值不为 NULL, 它就会返回自身的值,否则返回它的第二个操作数。 <?PHP // Fetches the value of $_GET ['user'] and returns 'nobody' // if it does not exis...

dchaofei 2018 年 11 月 24 日 暂无评论

PHP 与斐波那契数列

三种方式实现斐波那契数列 普通递归实现 function fibonacci_recursive($n) { if ($n <= 1) { return 1; } return fibonacci_recursive($n - 1) + fibonacci_recursive($n - 2); } for ($i = 1; $i <= ...

dchaofei 2018 年 09 月 04 日 暂无评论

PHP 实现终端进度条

普通进度条 $count = 100; for ($i = 1; $i <= 100; $i++) { usleep(50000); printf("\r [%-100s] (%2d%%/%2d%%)", str_repeat("=", $i) . ">", ($i / $count) * 100, $count); } 高逼格的进度条 for ($i = 1;...

dchaofei 2018 年 07 月 26 日 暂无评论

PHP fread 函数是否阻塞?

fread() 在一般文件是不阻塞的,但是在管道这些特殊文件下会阻塞。 普通文件 if (PHP_SAPI != 'cli') { exit('请在 cli 下运行'); } $file = __DIR__.DIRECTORY_SEPARATOR.'test.txt'; // 创建一个普通文件 if (!file_exists($file)) { touch($file)...

dchaofei 2018 年 07 月 17 日 暂无评论

PHP 比对两个图片是否相等

需求是这样的,朋友公司收到封举报邮件,说是未经同意用了别人的图片,并发来图片样本,朋友老板让他从后台十几万图片中找到图片的位置。 分析:图片也是文件,所以我们只需要遍历所有图片,对比图片的 md5 值是否相等就行了。 code: <?PHP $dir = '/path/images/'; // 本地所有图片的目录路径 $md5 = md5_file('/path/test.pn...

dchaofei 2018 年 07 月 11 日 暂无评论

php生成随机邀请码方案及代码

自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止。 优点:没发现有啥优点。 缺点:产生速度慢,还要查询数据库,当数据量大的时候,可能重复的机率会比较高,要查询多次数据库. guid,该方法应该是用的比较多的。    优点:使用简单方便,不用自己编写额外的代码   缺点:占用数据库空间相对较大...

dchaofei 2017 年 06 月 28 日 暂无评论

上传文件返回唯一的名字

返回一个唯一的图片名 uniqid函数: uniqid(prefix,more_entropy) uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。 说明 如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23个字符串长。 如果 more_entropy 参数设置为true,则在返回值的末尾添加额...

dchaofei 2017 年 05 月 07 日 暂无评论

创建一个分页函数

//获取当前页数,总记录数,和总页数 require_once '../include.php'; $page=$_REQUEST['page']?(int)$_REQUEST['page']:1; $sql="select * from imooc_cate"; $totalRows=getResultNum($sql); $pageSize=2; $totalPage=ceil($tot...

dchaofei 2017 年 05 月 07 日 暂无评论

php文件上传与下载

文件上传原理:将客户端的文件上传到服务器端,在将服务器端的临时文件移动到制定目录即可。 客户端配置:表单发送方式post,添加enctype="multipart/from-data" 用$_FILES接收上传的文件; $_FILES中保存着上传文件的信息 ·name:上传文件的名称 ·type:上传文件的MIME类型 ·tmp_name:上传到服务器上的临时文件名 ·...

dchaofei 2017 年 04 月 11 日 暂无评论

上传文件时生成一个唯一的文件名

确保文件名唯一,防止重名产生覆盖 $uniName = md5(uniqid(microtime(true),true)).'.'.$ext; MD5()函数用于加密字符串,生成一串数字 uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。 语法 uniqid(prefix,more_entropy) 如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 ...

dchaofei 2017 年 04 月 11 日 暂无评论