PHP
呦呦切克闹_666
这个作者很懒,什么都没留下…
展开
-
【排序】冒泡排序和快速排序
php实现快速排序和冒泡排序快速排序实现思路:把第一个元素作为标记,依次判断后续的值,如果小于它则放在左边,如果大于它则放右边,同理把左右两部分看成一个整体一直递归,最后再数组拼接起来它的最优时间复杂度为O(nlogn)【以标记元素为中心,正好每次左右都能均匀分配】,最糟糕时间复杂度为O(n^2)【标记元素每次是最大或最小值,使所有数都划分到一边】function quickSort($arr){ $count = count($arr); //统计出数组的长度 if转载 2020-06-30 20:18:15 · 154 阅读 · 0 评论 -
传引用与传值的区别
简单的来说:传值:当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量; 变量默认是传值;传引用:当一个变量的值赋予另外一个变量时,改动新的变量将影响原始的变量;使用引用赋值,简单的就是将&符号加到将要赋值的 变量前;相当于别名; 对象默认是传引用;使用场景:对于较...原创 2020-03-19 22:51:58 · 1513 阅读 · 0 评论 -
PHP实现兼容unicode文字的字符串大小写转换
mb_strtolower() - 使字符串小写,以unicode为基础mb_strtoupper() - 使字符串大写,以unicode为基础strtolower() - 将字符串转化为小写strtoupper() - 将字符串转化为大写ucfirst() - 将字符串的首字母转换为大写ucwords() - 将字符串中每个单词的首字母转换为大写...原创 2020-03-19 21:04:20 · 264 阅读 · 0 评论 -
合并数组的几种方式
一、 + 规则:当两个数组的键名是数字键名或者字符串键名可以直接 +,$c = $a + $b,在$a后追加($b在$a中不存在的键名)键名和值。不覆盖,只是追加不存在的键名和对应的值。 键名不重新索引。 无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回。二、array_merge()将一个或多个数组的单元合并...原创 2020-03-19 19:15:51 · 5160 阅读 · 0 评论 -
框架的优缺点
一、yaf框架的优缺点 各有特点,不能直观地分好坏。Yaf是用PHP扩展的形式写的一个PHP框架,也就是以C语言的编写,性能上要比PHP代码写的框架要快一个数量级。在执行效率方面,这个框架很可能会是最高的。 因为它的作者就是惠新宸,框架作者本身对PHP底层执行非常了解。Laravel,我了解不多,但是,它以优雅简洁著称。如果业务性能压力大,需要耗费很多机器,推荐采用前者。如果项目更...转载 2020-03-19 14:23:58 · 1591 阅读 · 0 评论 -
cookie禁用怎么存储session id
get方法的URL重写的机制:把session id 添加到URL信息中 post表单隐藏字段:就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器...原创 2020-03-16 17:46:14 · 210 阅读 · 0 评论 -
session原理及实现session共享
最近,在工作中遇到一个问题,问题描述:一个用户在登录成功以后会把用户信息存储在session当中,这时session所在服务器为server1,那么用户在session失效之前如果再次使用app,那么可能会被路由到server2,这时问题来了,server没有该用户的session,所以需要用户重新登录,这时的用户体验会非常不好,所以我们想如何实现多台server之间共享session,让用户状...转载 2020-03-16 17:16:44 · 337 阅读 · 0 评论 -
php 根据时间获取二十四节气
/** * 节气通用算法 */ public function getJieQi($map) { $_year = $map['year']; $month = $map['month']; $day = $map['day']; $year = substr($_year, -2) +...原创 2019-09-25 16:49:11 · 1833 阅读 · 2 评论 -
定时脚本
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:crontab -e 编辑周期任务30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smbcrontab命令说明: crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并...原创 2019-09-25 15:24:54 · 740 阅读 · 1 评论 -
MySQL 权限管理二
一、MySQL权限简介那么Mysql的权限是如何实现的呢?这就要说到mysql的两阶段验证,下面详细介绍:第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登陆。第二阶段:如果你能连接,Mysql会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,Mysq...原创 2019-09-24 15:00:57 · 96 阅读 · 0 评论 -
MySQL 权限管理
【%、localhost、'127.0.0.1'】%表示允许远程登录,localhost表示只允许本机登录,'127.0.0.1'表示只允许本机IP为'127.0.0.1'的登录。【查看MySQL用户权限】show grants for syy@'localhost'; // 如果用户名后面不接@'localhost',则默认是用户名@'%'的形式。【删除MYSQL用户】#删除了...原创 2019-09-24 14:36:58 · 255 阅读 · 0 评论 -
PHP+mysql 实现排名并查询指定用户排名
PHP+mysql 实现排名并查询指定用户排名情形如下: 对用户表里的所有用户 的积分大小 【point 】实现排名 并 得到某一个用户的积分的具体排名1、首先,对所有用户进行排名$sql = "SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point F...原创 2019-09-24 10:29:12 · 1554 阅读 · 1 评论 -
利用php的mcrypt模块加密解密(AES、DES等等)
$cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表$mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表php 所支持的 mcrypt 所有的加密算法和模型://rijndael-128,rijndael-192,rijndael-256就是AES加密,3种分别是使用不同...原创 2019-09-16 16:49:53 · 327 阅读 · 0 评论 -
openssl_encrypt 加密解密
DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。密钥长度是64位(bit),超过位数密钥被忽略。所谓对称性加密即加密和解密密钥相同,对称性加密一般会按照固定长度,把待加密字符串分成块,不足一整块或者刚好最后有特殊填充字符。跨语言做 DES 加密解密经常会出现问题,往往是填充方式不对、编码不一致或者加密解密模...转载 2019-09-16 16:41:58 · 12820 阅读 · 1 评论 -
php 处理XML格式的数据
xml格式的数据格式:<?xml version="1.0" encoding="utf-8" ?><returnsms> <returnstatus>status</returnstatus> <message>message</message> &l转载 2018-12-06 20:06:31 · 471 阅读 · 0 评论 -
获取当前时间的毫秒时间戳
list($msec, $sec) = explode(' ', microtime()); # 0.85447400 1543975789$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);echo $msectime; #1543975789855得到的$msectime ...原创 2018-12-06 20:08:24 · 3092 阅读 · 0 评论 -
PHP对接新浪API动态生成短链接
新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接。 新浪开放平台对应API文档:https://open.weibo.com/wiki/Short_url/shorten#short_url.2FshortenAPI: http://api.t.sina.com.cn/short_url/shorten.json (返回结果是JSON格式) h...转载 2018-12-28 10:58:28 · 243 阅读 · 0 评论 -
将xml数据转化为数组
/** * 将xml数据转化为数组 * @param $xml_datas :获取的xml数据 * @return mixed */public static function xmlToArr($xml_datas){ $result = file_get_contents($xml_datas); $ret_data = simplexml_load_string...原创 2019-04-09 10:27:44 · 713 阅读 · 0 评论 -
php+mysql存储emoji表情
解决方案参考:点击打开链接https://segmentfault.com/q/1010000003711491/a-1020000003712160给一个标准的解决方案: mysql的版本必须为v5.5.3或更高 把数据库的编码改成utf8mb4 -- UTF-8 Unicode 然后需要存储emoji表情的字段选择utf8mb4_general_ci ...转载 2019-06-26 11:11:09 · 425 阅读 · 0 评论 -
strlen()和mb_strlen()的作用分别是什么
strlen和mb_strlen都是用于获取字符串长度的,但是两者获取字符串的长度不同:1、strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节码编码,如gbk和utf8,使用strlen得到的不是字符的个数,而是该字符的总字节数;2、mb_strlen获取其字符个数,使用mb_strlen要注意两点,一是要开启mbstring扩展,二是要指定字符集。eg...原创 2019-06-26 14:35:59 · 2970 阅读 · 0 评论 -
PHP邮件发送:PHP使用SMTP服务器发送邮件
1、下载好phpmailer 后只需要几个重要的文件即可,其余的都可以删除class.phpmailer.phpclass.smtp.phpclass.pos3.php(我未用到这个接受文件)2、把发送短信使用的邮箱账号 开启STMP服务(此处以QQ邮箱举例)开启STMP 服务并保存设置记录STMP授权码,此授权码在调用短信发送接口时作为 密码使用3、短信发送...原创 2019-06-28 15:45:30 · 5719 阅读 · 0 评论 -
获取每月最后一天某个时间点的时间戳mktime
获取每月【最后一天某个时间点】的时间戳 :mktimemktime(12,0,0,date("m")+1,0,date("Y")//获取每月最后一天12点的时间戳原创 2019-07-11 19:45:56 · 829 阅读 · 0 评论 -
获取七牛云上传凭证token
获取七牛云上传凭证token:https://developer.qiniu.com/kodo/manual/1208/upload-token原创 2019-07-11 19:48:49 · 5663 阅读 · 2 评论 -
php正则匹配中文汉字
通常情况下,在php中来判断字符串是否为中文,大多数人会采用下面这种:<?php $str = "php测试";if (preg_match("/^[\u4e00-\u9fa5]+$/",$str)) {print("该字符串全部是中文");} else {print("该字符串不全部是中文");}?>然而报错了:Warning: preg_match...原创 2019-09-03 18:08:48 · 2772 阅读 · 0 评论 -
strcmp与strncmp的区别
strcmp与strncmp都是用来比较字符串的,区别在于strncmp是比较指定长度字符串,两者都是二进制安全的,且区分大小写。strcmpstrcmp(string1,string2)设这两个字符串为str1,str2,0 - 如果两个字符串相等 <0 - 如果 string1 小于 string2 (负数) >0 - 如果 string1 大于 strin...原创 2019-09-16 15:02:41 · 3738 阅读 · 1 评论 -
PHP 函数获取 昨天 、 今天、明天的日期
echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"; echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>"; echo "一周后:".date("Y-m...原创 2018-10-15 11:10:44 · 380 阅读 · 0 评论