Category Archives: 程序开发
PHP性能优化之连接超时
这里抛出一个常见问题:PHP环境下脚本运行超时,尤其是处理后台服务数据处理时经常会遇到。
Maximum execution time of 120 seconds exceeded
常规解决排查方式
我们的排查思路一般从数据量开始,主观判断由于程序需要处理的数据过多,造成运行处理时间过长,超出了系统限定的脚本最大执行时间。那么真的是处理的数据过多,还是程序写法或者逻辑存在风险问题?我们从以下几个方面分析 Continue reading
宝塔配置本地环境完成后,网站伪静态提示:No input file specified.
本地原来是phpStudy集成工具,但IIS没有使用集成中的,是自己直接windows中安装的,本地测试时直接IIS中新建网站,设置新端口,只使用着phpStudy中的mysql和php。
最近的这个项目基本是使用SVN上传到服务器的,直接在实际环境中开发,有好处也有坏处。好处就是开发完成后,直接就可以使用了;不好的地方就是上传太频繁。那么在本地开发的优缺点正好与上面的相反,好处就是不用频繁上传等,改完直接浏览器测试;不好的地方就是开发完成后,放到实际环境中就可能会出现N吨BUG,也是很头疼的。
最近这项目由于上传操作太频繁了,所以想着远程与本地开发结合一下,突然想不用phpStudy,试试宝塔,下载>>安装>>基础配置>>建站测试,也是折腾了有十个八个小时的样子
现在基本环境是apache+php+mysql Continue reading
Console命令
一、显示信息的命令
0 1 2 3 |
console.log("normal"); // 用于输出普通信息 console.info("information"); // 用于输出提示性信息 console.error("error"); // 用于输出错误信息 console.warn("warn"); // 用于输出警示信息 |
二、点位符:字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o); Continue reading
Linux开机自动启动svnserve服务的方法
开机自动启动svnserve服务的方法,开机启动svnserve
1、编辑rc.local文件
vim /etc/rc.d/rc.local
2、加入如下启动命令
/usr/bin/svnserve -d -r /home/svn Continue reading
MySQL查重、去重
mysql数据库查重、去重
查重一:
0 |
SELECT COUNT(*),`name`,`data` FROM `setting` GROUP BY `name` HAVING count(*) > 1; |
结果: Continue reading
微信公众号个性化菜单接口:创建个性化菜单
为了帮助公众号实现灵活的业务运营,微信公众平台新增了个性化菜单接口,开发者可以通过该接口,让公众号的不同用户群体看到不一样的自定义菜单。该接口开放给已认证订阅号和已认证服务号。
开发者可以通过以下条件来设置用户看到的菜单:
0 1 2 3 4 5 |
1、用户标签(开发者的业务需求可以借助用户标签来完成) 2、性别 3、手机操作系统 4、地区(用户在微信客户端设置的地区) 5、语言(用户在微信客户端设置的语言) |
个性化菜单接口说明:
0 1 2 3 4 5 6 |
1、个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android 6.2.4以上,暂时不支持其他版本微信 2、菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果 3、普通公众号的个性化菜单的新增接口每日限制次数为2000次,删除接口也是2000次,测试个性化菜单匹配结果接口为20000次 4、出于安全考虑,一个公众号的所有个性化菜单,最多只能设置为跳转到3个域名下的链接 5、创建个性化菜单之前必须先创建默认菜单(默认菜单是指使用普通自定义菜单创建接口创建的菜单)。如果删除默认菜单,个性化菜单也会全部删除 6、个性化菜单接口支持用户标签,请开发者注意,当用户身上的标签超过1个时,以最后打上的标签为匹配 |
个性化菜单匹配规则说明:
0 1 2 |
个性化菜单的更新是会被覆盖的。 例如公众号先后发布了默认菜单,个性化菜单1,个性化菜单2,个性化菜单3。那么当用户进入公众号页面时,将从个性化菜单3开始匹配,如果个性化菜单3匹配成功,则直接返回个性化菜单3,否则继续尝试匹配个性化菜单2,直到成功匹配到一个菜单。 根据上述匹配规则,为了避免菜单生效时间的混淆,决定不予提供个性化菜单编辑API,开发者需要更新菜单时,需将完整配置重新发布一轮。 |
微信小程序自定义菜单事件推送
自定义菜单事件推送
用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。请注意,第3个到第8个的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。
目录
4 scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送
6 pic_photo_or_album:弹出拍照或者相册发图的事件推送
php排序算法冒泡排序(降序)
php写的冒泡排序(降序),别看广告,看疗效。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$arr = [1,4,8,10,6,2,30]; echo '这是原始数组<br>'; print_r($arr); // echo '<br>'; // $count = count($arr); $x = 1; // for(;$count>1;$count--){ echo '第【'.$x.'】轮比较开始 >> $count=' . $count; for($i=1;$i<$count;$i++){ if($arr[$i]>$arr[$i-1]){ $tmp = $arr[$i]; $arr[$i] = $arr[$i-1]; $arr[$i-1] = $tmp; } echo '<br>'; // print_r($arr); // } echo '<br>'; // $x++; // } |
输出结果: Continue reading
php 二维数组按某个键值排序
php 二维数组按某个键值排序,二维数组排序
方法一 以单列值排序:
其中 array_column(数组,数组中的某个键值) 从多维数组中取出某个键值的一列 返回一个一维数组;
array_multisort(数组(一维数组),排序方式(SOTR_ASC,SOTR_DESC),其他数组(可以是二维的)) Continue reading