自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ivhong

php开发

  • 博客(140)
  • 资源 (38)
  • 收藏
  • 关注

原创 php模式之装饰器模式2

原文来自(大胖博客)在上一篇文章中,介绍了如何在代码架构之初,为了以后的扩展方便做的考虑,那么在现实中大部分的情况不是如此,那么我们需要重构这块么?不一定,今天我们使用另一种方式来实现装饰器。假设现在我们处在产品的第二个阶段,有下面第一阶段代码来实现需求[php]class User{ function loadData(){ $res = 'load ...' ...

2019-11-28 11:27:54 221

原创 php模式之装饰器模式1

原文来自(大胖博客)装饰器模式,也成修饰器模式。目的是给现有的对象增加或修改成新逻辑。说人话就是不改变对象的情况下,给对象的某个操作增加前置操作或者后置操作(当然也有可能改变操作的逻辑)。举个栗子:我们在操作数据库的时候会从数据库拉取数据,拉取数据的动作是 loadData,那么就可以针对loadData操作进行“装饰器”的封装。1. 实现loadData接口,接口这里的目的是所有加载数...

2019-11-28 09:25:10 218

原创 mysql 比较工具(MAC)

原文来自(大胖博客)1. 安装软件a.(https://dev.mysql.com/downloads/connector/python/)[shell]brew cask install mysql-connector-python[/shell]b.(https://downloads.mysql.com/archives/utilities/)[shell]brew cas...

2019-11-28 09:22:54 1425

原创 在redis中优化频繁操作redis产生多次链接引发的网络延时

原文链接:http://ivhong.com/?p=173在程序中可能存在频繁操作redis,每次操作redis都需要产生网络链接,虽然每次操作的返回处理非常快(几十甚至几毫米),但是非常多的redis操作在超高的并发请求中,还是有必要优化的,那么php中如何避免产生多次操作,每次都链接一次redis呢?其实和上篇文章的方法是一样,仅仅是把 multi 的参数指定为Redis::PIPELIN

2017-09-01 19:45:51 8481

原创 redis 事务之watch

原文链接:http://ivhong.com/?p=166事务保证原子性操作,在redis 中实现事务和mysql中实现事务的方法有些不一样。在 mysql中实现事务,一般是启动一个事务,然后执行 select … for update 对某个要操作行进行锁定,然后如果并发的进程处理到锁定的行时,判定改行是否被其他的进程正在读(被锁定),如果是,则等待锁释放,然后继续执行结下来的操作,这也

2017-09-01 17:05:18 443

原创 php 导入csv文件

if (($handle = fopen($tmpname, 'r')) !== FALSE) { while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { $isempty = true; array_walk($data, function(&$a)use

2016-12-08 16:50:41 451

原创 mac 终端添加颜色

#Tell ls to be colourfulexport CLICOLOR=1export LSCOLORS=Exfxcxdxcxegedabagacad # Tell grep to highlight matchesexport GREP_OPTIONS='--color=auto' export TERM="xterm-color"PS1='\[\e[0;33m\]\u\

2016-12-06 13:56:08 588

原创 mac & liunx ssh 自动登录

#!/usr/bin/expect -fset timeout -1spawn ssh username@xxx.xxx.xxx.xxxexpect "*assword:*"send "password\n"interact

2016-12-06 13:51:58 401

原创 shell 版守护进程

本文地址: http://ivhong.com/shell-版守护进程/shell 实现守护进程,包含两个文件:1 ctl.sh 控制器文件2 run.sh 守护进程文件用法:1 按照注释修改 ctl.sh 要守护的进程命令2 ctl.sh [start | stop | restart]压缩包下载: 守护进程

2016-06-28 16:16:15 410

原创 crontab 重定向错误日志 加上时间

(原文链接 http://ivhong.com/crontab-%E9%87%8D%E5%AE%9A%E5%90%91%E9%94%99%E8%AF%AF%E6%97%A5%E5%BF%97-%E5%8A%A0%E4%B8%8A%E6%97%B6%E9%97%B4/)在开发中,我们避免不了写crontab脚本来异步执行一些东西,一般设置crontab用下面的方法*/1 * * *

2016-06-01 18:17:14 8316

原创 修改NetBeans 新建文件默认文件类型为UNIX

1. 安装插件 change-line-endings-on-save 2. 工具-》选项-》编辑器-》Line Endings -> Enable adjusting the line endings 前打勾,然后下面的下拉框选择 Unix(LF)

2016-05-31 19:35:20 825

原创 yii2 随笔(七)依赖注入——(4)服务定位器

原文地址:http://ivhong.com/?p=135(ivhong.com 是我的博客主址)服务定位器定位器是依赖注入的一种解决方式,它包含依赖注入,在解决了依赖注入后,如果服务使用者和服务提供者不是用一个人,那么使用者要了解提供服务的必须参数,这样才能保证依赖的正确性,这就耦合了使用者和提供者,服务定位器就是解耦这部分的,服务提供者在 ServiceLocator 中注册服务(同时

2016-03-28 17:24:12 925

原创 yii2 随笔(七)依赖注入——(3)yii2的依赖注入

原文地址:http://ivhong.com/?p=124(ivhong.com 是我的博客主址)yii2的依赖注入的核心代码在 yii\di,在这个包(文件夹)下面有3个文件,分别是Container.php(容器),Instance.php(实例),ServiceLocator(服务定位器),现在我们讨论一下前两个,服务定位器可以理解一个服务的注册表,这个不影响我们讨论依赖注入,它也是

2016-03-28 17:20:33 1899 1

原创 yii2 随笔(七)依赖注入——(2)php依赖注入的简单实现

原文地址:http://ivhong.com/?p=115(ivhong.com 是我的博客主址)前面我们知道了问题所在,那么PHP是怎么解决这个办法的呢?因为是yii2,所以我们用yii2的方式简单介绍一下,我把yii2的核心代码整合了一下,来说php实现依赖注入的过程。在使用过yii2开发的同学,对Yii::createObject不陌生,他就是依赖注入的一个“入口”,我把它提出来

2016-03-28 17:14:17 1157

原创 yii2 随笔(七)依赖注入——(1)什么是依赖注入

原文地址:http://ivhong.com/?p=112(ivhong.com 是我的博客主址)在学yii2之前,就已经知道了“依赖注入”的这个名词,也尝试了解过,但是都是一直云里雾里的,可能是一直没有机会真实的使用过,所以了解的不太彻底,这次学习yii2顺便把这个所谓“高大上”给搞定!!!哈哈在开始“依赖注入”之前,我们先说说设计模式,我觉的从这方面入手可能理解的更快一些。

2016-03-28 17:09:47 673

原创 php isset 和 array_key_exists 检查数组中是否存在某值的区别

原文地址:http://ivhong.com/?p=110 http://ivhong.com/?p=110(ivhong.com 是我的博客主址)先看看下面这段代码,你觉得结果是什么呢?//定义一个数组, > 5.4$arr = ['a' => null];var_dump(isset($arr), array_key_exists('a', $arr));

2016-03-25 15:43:48 2116 1

原创 yii2 随笔(六)利用事件触发修改请求参

yii2 可以使用事件机制来触发特殊的处理,实现了代码扩展,可以理解为在yii2内核层已经埋下了隐藏的“钩子”,用于后期扩展,比如 yii\base\application::run() 方法就埋下了两个“钩子”// yii\base\Applicationpublic function run() { try { $this->stat

2016-03-23 20:27:14 3899

原创 yii2随笔(五):mysql 防注入 实现 mysql_real_escape_string 功能

Yii::$app->db->quoteValue() 等价 PDO::quote

2016-03-11 11:12:28 1943

原创 yii2 随笔(四):文件日志监控

日志使用方式:http://www.yiifans.com/yii2/guide/runtime-logging.html

2016-03-11 11:07:51 966

转载 过滤utf8 字符中超过三个字节的字符,或者非utf8字符

function filterUtf8($str) { /*utf8 编码表: * Unicode符号范围 | UTF-8编码方式 * u0000 0000 - u0000 007F | 0xxxxxxx * u0000 0080 - u0000 07FF | 110xxxxx 10xxxxxx

2016-02-15 19:01:17 4841

原创 解决npm安装某些工具过慢问题

npm安装某些工具需要在远程下载文件,所以安装时就会出现过慢的情况,你懂得~解决办法使用淘宝NPM镜像,使用方法地址: http://npm.taobao.org/

2016-02-14 19:21:29 360

原创 php 实现 redis 队列,等待有新消息入列

1. 消息入列代码, t1.php:$redis = new Redis();$redis->connect('127.0.0.1', 6379);while(1){ try{ $value = "value_".time(); $redis->LPUSH('key1', $value);

2016-01-20 18:52:15 4822

原创 php 服务器端主动发数据到客户端解决办法

1. 在客户端使用隐藏 iframe,其src指向服务器端的控制代码,比如 server.php2. 在server.php 通过 while 实现永不结束的请求,在循环内,实现断点,比如 sleep(2),表示每2秒钟循环一次3.在每次循环中输出片段代码到客户端echo “parent.$('#list').append('xxxxxxxxx')";ob_flush();

2016-01-20 18:04:26 2953 1

原创 yii随笔(三) 开启友好路径

概述:实现 localhost/site/login  访问 localhost/index.php?r=site/login1. web server 配置    a. nginx 配置   location / {           try_files $uri $uri/ /index.php?$args;   }   b. apache 配

2016-01-18 19:09:36 469

原创 yii 随笔(二):创建第一个用户

1. 进入到 webroot/advanced (yii安装目录)2. 配置数据库3. 执行 yii migrate 命令(migrate命令是yii自带的数据库转移工具,可对数据库进行备份升级等操作)该命令执行的数据文件是:该命令的执行主体文件是:4. 现在有了现在数据库里有了 user表,现在建立一个可登陆的用户5. 用命令行创建passwo

2016-01-14 19:31:56 1373

原创 yii 随笔(一):初始化环境

1. 下载高级模板包(我选择的是解压安装)http://www.yiiframework.com/download/2. 解压安装包(我下载的是https://github.com/yiisoft/yii2/releases/download/2.0.6/yii-advanced-app-2.0.6.tgz),到 webroot/advanced3. 进到

2016-01-14 19:15:55 1055

原创 限制input输入符合规则的浮点数

$('#col-sm-2, #min_goods_amount').keydown(function(e){ return formatInput(e); }); /** * 限制input输入符合规则的浮点数 * * @param {type} e 键盘事件 * @param {type} maxInt 整数位最

2015-12-26 18:46:55 3745 1

原创 svn 小版本上线前必须检测流程

1. 确定要上线的版本 2. 确定上一次上线的版本 3.  svndiff(该shell命令可以在我的资源中查找) 出版本差异文件4. 通过 svn 自带命令 svn diff 检测每个要上传的代码的实际差异情况,确认是否有非上线代码5. 确认上述步骤处理完后再备份线上代码(虽然已经反复确认,但是确保万无一失)6. 上线差异文件7. 及时检测上线后的代码是否符合预期功能

2015-12-15 11:09:25 882

原创 纯前端实现图片上传预览(filereader )

filereader.rar

2015-11-23 10:18:17 965

转载 php cli 等待用户输入方法

function read(){ $fp = fopen('/dev/stdin', 'r'); $input = fgets($fp, 255); fclose($fp); $input = chop($input); return $input;}

2015-06-18 13:05:44 3641 1

原创 php autoload 加载函数

<?php$addpath = array( '/path1/', '/path2/', '/path3/',);foreach ($addpath as $value) { $a .= ':' . __DIR__ . $value;}set_include_path(get_include_path() . $a);spl_autoload_regis

2015-06-04 10:54:04 565

原创 apache 设置允许跨域访问

在Apache中配置支持CORS(跨域资源共享)#对所有域名开放Header set Access-Control-Allow-Origin *#对指定域名开放Header set Access-Control-Allow-Origin http://www.ivhong.com

2015-04-17 16:17:49 15304

原创 php 判断当前脚本的运行方式

$a = php_sapi_name();$iscli = $a == 'cli';

2015-03-02 17:12:05 793

原创 解决在ubuntu上安装sphinx提示mysql-devel 找不到的问题

在ubuntu上 mysql-devel 叫做了 libmysqld-dev, 有下面的方式安装 再编译就ok了sudo apt-get install libmysqld-dev

2015-01-22 11:04:48 688

转载 apache 开启GZIP

# mod_gzip: mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_i

2014-10-21 15:27:58 448

原创 php 写shell脚本

比如说写一个 test 的php脚本:1.在命令行下写执行 ./test 参数1 参数22.脚本内容如下#!/usr/bin/php -q //php 解析器$参数 = array_slice($argv, 1);//$参数 = array('参数1‘, '参数2');

2014-03-17 14:47:12 1318

原创 apache层的账户权限控制,以及apache黑名单白名单过滤功能

1. 修改虚拟主机配置#目录路径                ...                AllowOverride All #允许.htaccess覆盖配置文件,使.htaccess生效                ...2.在需要权限控制的目录下创建.htaccess#比如要控制 /var/www/quanxian 目录,在/var/www

2014-03-17 13:56:41 4549

原创 php 接收 shell 返回的结果后,中文乱码的解决办法

如果需要php执行一些shell命令,查看显示结果的话,如果shell输出的有中文,则php得到的中文返回结果可能类似是 “?\230?\180?\187?\229?\138?\168” 的字符串。那么需要这个函数转译:function shell2txt($a){ $ary = explode('/', $a); foreach($ary as $k => $v){

2014-01-23 10:18:44 2353

原创 php 截取字符串 解决html实体的问题

$str = '启动开展“96156——';//如果你的编码格式不是ISO-8859-1”的话第三个参数一定不能省,这个参数就是当前的编码格式,http://www.w3school.com.cn/php/func_string_html_entity_decode.asp$str = html_entity_decode($str, ENT_QUOTES,

2014-01-08 21:14:27 913

原创 天气预报集成函数

/** * Weather * * @package Weather * @author 王长宏 * @link http://blog.csdn.net/wang350 */// ------------------------------------------------------------------------/** * * 调用方法 * $weat

2014-01-08 16:45:24 4544

反编译java小工具,简单实用

反编译java小工具,简单实用,绿色版,非常好用

2016-01-06

纯前端实现图片上传预览(filereader )

纯前端实现图片上传预览(filereader ),HTML5 filereader 实现

2015-11-23

Extending and Embedding PHP中文版

Extending and Embedding PHP中文版,php进阶必备

2014-11-15

自己写的 drupal module 验证码

由于drupal form 用的很不顺手,所以偶尔自定义form,这样用第3方的drupal验证码不太方便了,所以就写了这个module,验证码的实现方法来自网络。(注意,这个不是用drupal form做的,但是可以嵌入到drupal里)

2013-11-04

drupal 在线客服 module

qq 和 旺旺 的客服小挂件,基于drupal7,没有css

2013-06-21

中国象棋网络版

还未完成的功能(悔棋,重新开始)其他的好了,可以直接玩了(/url?room=1&user=user1)

2013-06-06

ivhongDialog

一款基于mootools的js dialog方法,注意:如果不想用mootools, 只需重新写一下生成dom的那部分代码和设置css的那段代码即可.css 需要自己写,html架构已经搭好

2013-03-12

js中国象棋游戏

js中国象棋游戏

2013-03-12

MySQl-Workbench说明

MySQl Workbench使用说明

2013-03-12

云计算入门指南

云计算入门

2013-03-12

数据库编码转换程序

数据库编码转换程序

2013-03-12

sql的一些用法

一些sql中的一些有意思的用法,不太常用

2013-03-12

高级Bash脚本编程指南.chm

高级Bash脚本编程指南

2013-03-12

shell读文件

shell读文件

2013-03-12

svndiff 工具

根据版本号自动导出svn被修改的文件,很方便

2013-03-12

SEO优化技巧

SEO优化技巧

2013-03-12

php unzip 工具

php unzip 工具

2013-03-12

9个php功能

非常好,9个php功能

2013-03-12

php图片验证码函数

php 验证码

2013-03-12

php生成动态验证码图片

php生成动态验证码图片

2013-03-12

php验证码1

php验证码

2013-03-12

自己动手写操作系统电子书+源代码

自己动手写操作系统电子书+源代码,自己动手写操作系统电子书+源代码

2013-03-12

mootools中文教程

mootools中文教程

2013-03-12

scrollbar1.2

这个是基于mootools的一个scrollbar 的工具,也是本人写的。还差重新刷新的功能(动态调整)

2013-03-12

plg_wangda_flowplayer

joomla1.5的plugin,播放flash的插件

2013-03-12

plg_wangda_flowmp3player

joomla1.5 的一个mp3 plugin

2013-03-12

com_ccnewslette

修改过的com_ccnewslette, 添加了group,可以分组

2013-03-12

plg_mobiletotemplate

根据不同的手机,使用不同的joomla模板,和com_mobiletotemplate 一起使用

2013-03-12

com_mobiletotemplate

根据不同的手机,使用不用的模板,和plg_mobiletotemplate一起使用

2013-03-12

gedit 多文件搜索

gedit 多文件搜索 plugins

2013-03-12

Android_widget

Android widget

2013-03-12

android2.3特色讲解

android2.3特色讲解

2013-03-12

PHP深度分析:101个核心技巧、窍门和问题解决方法 + 源代码

PHP深度分析:101个核心技巧、窍门和问题解决方法 + 源代码

2012-12-28

joomla 中文手册 网页版

就是把网上的下载doc格式的joomla中文手册改成单个网页(mht)格式的了

2009-11-10

ActionScript3.0中文般

ActionScript 3.0 CookBook 中文翻译

2009-11-10

php中文函数手册.chm

帮助你简单直观的查看函数,非常适用于php初学者

2009-09-19

adodb4991.tgz

最新的adodb for php,我在网上找了好久,最后在官方网站找到的,希望对大家有用!!!官方网站的网址是:http://adodb.sourceforge.net/

2009-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除