最近的文章列表

分享PHP进程同步代码实例代码

经常遇到这样一种情况,计划任务定时后台执行某个php程序,有时候也需要手动执行,可能多个人都需要执行这个程序,如果任务持续时间非常长,就很容易造成重复执行,所以就开发了下面的类。
作用:在实际代码运行前检查与当前相同操作的进程是否正在运行,高并发运行是可靠的,运行中的进程中途异常中断不会产生任何影响。
构造方法传递pid文件目录的绝对路径,需要自己保证不同进程对应不同pid文件。

 代码如下:
 <?php
/*
 * 同一个PHP进程只运行一次,根据进程名字判断是否为排重进程,只能运行于linux,高并发条件下是并发安全的。
 */
2015/8/20 Comments:
移动端页面问题归总和规避方法(页面高度渲染错误、叠加区高亮、事件无法被触发、:active 效果不兼容)

对于前端开发者来说移动端存在更多的挑战,移动端页面开发过程中会碰到各种各样千奇百怪的问题(我们俗称BUG或坑),那么今天我为大家分享移动端页面开发过程中的一些坑和排坑技巧。

移动端页面在不同设备、不同操作系统 、不同运行环境下都可能造成各种各样的没有碰到过的的坑,相比曾经的IE6坑多了。下面先介绍一下4类具体常见的坑:

1、外观

A、页面高度渲染错误

2015/8/19 Comments:
解决Android5.0或以上版本的手机在应用安装失败的问题

前因

把手机OTA升级到Android 5.0(Android L)以后安装某打车软件失败,尝试了几次结果一样。

探究竟

最开始想到是软件和5.0的适配兼容问题,查下Log吧。

首先通过adb logcat监测log,然后重新尝试安装,没有发现特别醒目的信息。

然后通过adb install xxx.apk的方式安装,得到以下错误提示:

2015/8/18 Comments:
通过userAgent是否包含MicroMessenger来判断是否在微信内置浏览器打开网页,并提示友好的引导

由于微信的种种封闭,导致在微信内置浏览器打开的页面,会把外部链接全部屏蔽掉.

所以通用的做法是,判断是微信浏览器打开的时候做一种处理方式.

非微信浏览器打开时做另外一种处理方式.

 

类似你想在微信打开页面里点击下载按钮,一定是不成功的.我们会友好的跳出一张引导图.

2015/8/17 Comments:
解决PHP curl 长时间运行 内存泄露问题的方法(curl访问https站点时有bug)

php curl使用privoxy代理访问https://www.google.com/search?q=xxx

curl配置平淡无奇,长时间运行发现一个严重问题,内存泄露!不论用单线程和多线程都无法避免!是curl访问https站点的时候有bug!
内存泄露可以通过linux的top命令发现,使用php函数memory_get_usage()不会发现。

经过反复调试找到解决办法,curl配置添加如下几项解决问题:

 代码如下:
 [CURLOPT_HTTPPROXYTUNNEL] = true;
2015/8/16 Comments:
js实现移动HTML5页面滑动到最底部触发内容加载

今天和大家分享的是 html5 页面下拉到最底部时实现自动刷新加载新数据.

当然,也不一定是html5下适用,web页面都适用.

 

首先要清楚3个定义:

  1. 文档高度

    这是整个页面的高度

  2. 可视窗口高度

    这是你看到的浏览器可视屏幕高度

2015/8/14 Comments:
PHP中捕获超时事件的方法(error_get_last)实例

set_error_handler()不能捕获致命错误(具体错误类型见手册)。

所以需要如下方法:

<?php
ini_set ( 'max_execution_time', 1 );
function shutdown() {
$a = error_get_last ();
print_r ( $a );
}
2015/8/13 Comments:
PHP单例模式示例代码(必须只有一个实例并自动创建随后整个系统都能使用这个实例)

单例模式主要使用于数据库的连接, 确保数据库一个类只有一个实例, 并且向整个系统提供这个实例。从而避免new操作消耗资源, 同时避免数据库出现too many connection信息.

要点有三个: 1. 必须只有一个实例。 2. 必须自动创建这个实例。 3. 必须向整个系统提供这个实例。

 代码如下:

<?
     class mysql{
        privete static $instance ;//保存实例
         //构造函数声明为private, 防止直接创建对象
2015/8/12 Comments:
解决E/AndroidRuntime(17685): without permission not exported from uid的错误方法

今天把以前的一个项目导入到工程中,调试一翻很满意之后,运行,发现报错,报错信息如下

01-16 09:45:32.870: E/AndroidRuntime(17685): java.lang.RuntimeException:  
Unable to start activity ComponentInfo{com.bxlt.android.aims.activity/com.bxlt.android.aims.activity.LoginActivity}:
java.lang.SecurityException: Not allowed to start service Intent { act=InformationService }
without permission not exported from uid 10154
2015/8/11 Comments:
分享一个完善的读写ini格式的PHP配置类

基本满足所有配置相关的需求。

/**
* 解析.ini格式的配置文件为一个树形结构的对象
* 配置文件不同section通过冒号继承
* 默认根据hostname确定使用的section,如果不能确定就优先使用production
* 检测环境的时候总是优先检测production,其余section按定义顺序检测
*
2015/8/10 Comments: