<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[php_Zhaop的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/php_Zhaop</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; php_Zhaop]]></copyright><item><title><![CDATA[PHP 使用事务简单实现]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/80923655</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/80923655</guid><author>php_Zhaop</author><pubDate>Thu, 05 Jul 2018 10:55:23 +0800</pubDate><description><![CDATA[&amp;lt;?php$db = new mysqli(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;,&quot;test&quot;); //连接数据库$db-&amp;gt;autocommit(false); //设置为非自动提交——事务处理$sql1  = &quot;INSERT INTO `test`.`test1` (`name` )VALUES ('1' )&quot;;$result1 = $db-&amp;gt;query($s]]></description><category></category></item><item><title><![CDATA[对图片进行等比例缩小]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/78273840</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/78273840</guid><author>php_Zhaop</author><pubDate>Wed, 18 Oct 2017 15:53:35 +0800</pubDate><description><![CDATA[/**
 * 上传文件
 * @return string
 */
public function uploadFile() {
    if($this->checkError() && $this->checkSize()
        && $this->checkExt() && $this->checkMime()
        && $this->checkTrueImg() &&]]></description><category></category></item><item><title><![CDATA[计算经纬度求出最短的距离]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/78249455</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/78249455</guid><author>php_Zhaop</author><pubDate>Mon, 16 Oct 2017 14:35:42 +0800</pubDate><description><![CDATA[//求坐标最近的距离
public static function getDistance($longitude1, $latitude1, $longitude2, $latitude2, $unit=2, $decimal=2){

    $EARTH_RADIUS = 6370.996; // 地球半径系数
    $PI = 3.1415926;

    $radLat1 = $lat]]></description><category></category></item><item><title><![CDATA[谈一谈闭包]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/75315172</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/75315172</guid><author>php_Zhaop</author><pubDate>Tue, 18 Jul 2017 18:08:11 +0800</pubDate><description><![CDATA[什么是闭包

好, 下面开始进入主题, 首先一个问题, 什么是闭包? 对于我们这些习惯了命令式编程, 尤其是Java这种完全面向对象的语言的人, 闭包可能是一个很陌生的概念,
 闭包时常在函数式语言中被提及, 那闭包到底是一个什么概念? 下面对闭包的解释来自维基百科.


在计算机科学中，闭包（英语：Closure），又称词法闭包（Lexical Closure）或函数闭包（funct]]></description><category></category></item><item><title><![CDATA[yii2.0高级框架配置时打开init.bat秒退的解决方法]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/74922460</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/74922460</guid><author>php_Zhaop</author><pubDate>Mon, 10 Jul 2017 14:38:04 +0800</pubDate><description><![CDATA[这几天刚接触到yii2.0框架，在配置advanced版本时运行init.bat初始化文件时老是闪退；
用cmd运行该文件时显示：The OpenSSL 
PHP extension is required by Yii2.如下图所示：

搜索了很多资料，终于找到问题所在之处了，原来是php.ini中的extension=php_openssl.dll没有打开；
1.打开php.ini文]]></description><category></category></item><item><title><![CDATA[深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73880401</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73880401</guid><author>php_Zhaop</author><pubDate>Thu, 29 Jun 2017 11:03:03 +0800</pubDate><description><![CDATA[mysql "ON DUPLICATE KEY UPDATE" 语法
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE，并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值，则在出现重复值的行执行UPDATE；如果不会导致唯一值列重复的问题，则插入新行。
例如，如果列 a 为 主键 或 拥有UNIQUE索引，并且包含值1，则以下两个语句具有]]></description><category></category></item><item><title><![CDATA[php 开发模式之工厂模式]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863816</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863816</guid><author>php_Zhaop</author><pubDate>Wed, 28 Jun 2017 20:42:17 +0800</pubDate><description><![CDATA[<?php

// 开发模式之工程模式
// 工厂模式：
// 由工厂类根据参数来决定创建出哪一种产品类的实例；
// 工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配，传入参数进行选择，返回具体的类。
// 工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。 
// 简单的说，就是调用工厂类的一个方法（传入参数）来得到需要的类；


//示例1 最基本的工厂模式

cla]]></description><category></category></item><item><title><![CDATA[PHP设计模式----单例模式（singleton）]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863764</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863764</guid><author>php_Zhaop</author><pubDate>Wed, 28 Jun 2017 20:34:57 +0800</pubDate><description><![CDATA[提出问题： 
为什么使用单例模式？
对于系统中的某些类来说，只有一个实例很重要，例如，1、一个系统中可以存在多个打印任务，但是只能有一个正在工作的任务；2、在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化，将弹出多个窗口，如果这些窗口显示的内容完全一致，则是重复对象，浪费内存资源；如果这些窗口显示的内容不一致，则意味着在某一瞬间系统有多个状态，与实际不符，也会给用]]></description><category></category></item><item><title><![CDATA[PHP设计模式－观察者模式（订阅者模式）]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863747</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863747</guid><author>php_Zhaop</author><pubDate>Wed, 28 Jun 2017 20:33:23 +0800</pubDate><description><![CDATA[相信大家都用过QQ（没用过QQ的大叔不要扔我），而且大家都很讨厌QQ的小弹窗，不时地就会跳出一个小窗口，真心烦人。那么如果我们是腾讯消息推送的服务端开发人员。如果要用PHP来实现这种消息发送那么如果做到呢？

    
    方案一。被动推送方式
   我们采用推的方式来接收消息。也说说，由服务端向各位用户直接推送消息。我们考虑地简单一点，毕竟我们只是学习设计模式嘛。首先，我们需要有一个]]></description><category></category></item><item><title><![CDATA[PHP网络爬虫之CURL学习]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863683</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73863683</guid><author>php_Zhaop</author><pubDate>Wed, 28 Jun 2017 20:26:04 +0800</pubDate><description><![CDATA[PHP的CURL
php的curl可以实现模拟http的各种请求，这也是php做网络爬虫的基础，也多用于接口api的调用。
这个时候有人就要发问了：为什么你特么不用file_get_contents?
curl的性能比它好，而且可以完成更多复杂的操作，不仅仅只是获取页面数据。
下面先分别介绍一些常用的函数。


curl_init 初始化一个curl对话

curl_setopt]]></description><category></category></item><item><title><![CDATA[Apache重写规则由浅入深剖析.htaccess]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73287433</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73287433</guid><author>php_Zhaop</author><pubDate>Thu, 15 Jun 2017 14:40:06 +0800</pubDate><description><![CDATA[1、.htaccess文件使用前提
.htaccess的主要作用就是实现url改写，也就是当浏览器通过url访问到服务器某个文件夹时，作为主人，我们可以来接待这个url，具体 地怎样接待它，就是此文件的作用。所有的访问都是通过URL实现，所以.htaccess的作用非同小可。正因为此，所以一般地网站通过设 置.htaccess，通过一个十分友好的url吸引用户进来，然后用.htaccess把用户]]></description><category></category></item><item><title><![CDATA[Mysql索引类型]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73249693</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73249693</guid><author>php_Zhaop</author><pubDate>Wed, 14 Jun 2017 16:43:58 +0800</pubDate><description><![CDATA[索引的优缺点 

优点:有了索引.对于记录数量很多的表,可以提高查询速度。
缺点：索引是占用空间的。索引会影响update insert delete速度。 

索引的四大类型 

一，FULLTEXT：全文索引，目前只有MyISAM引擎支持。其可以在CREATE TABLE ，ALTER TABLE ，CREATE INDEX 使用，不过目只有 CHAR、VARCHAR ，TEXT]]></description><category></category></item><item><title><![CDATA[虚拟机下CentOS搭建SVN服务器]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/73189027</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/73189027</guid><author>php_Zhaop</author><pubDate>Tue, 13 Jun 2017 17:48:58 +0800</pubDate><description><![CDATA[yum install subversion 


find出subversion的安装目录 ，在bin目录下验证是否安装成功 svnserve --version


也可以直接将bin目录下的文件加入到path中


配置SVN
1.建立test目录mkdir -p /opt/svndata/test
2.建立test库 svnadmin create /opt/svnd]]></description><category></category></item><item><title><![CDATA[Lua中的string库（字符串函数库）总结]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72834384</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72834384</guid><author>php_Zhaop</author><pubDate>Thu, 01 Jun 2017 19:12:38 +0800</pubDate><description><![CDATA[Lua解释器对字符串的支持很有限。一个程序可以创建字符串并连接字符串，但不能截取子串，检查字符串的大小，检测字符串的内容。在Lua中操纵字符串的功能基本来自于string库。
字符串库中的一些函数是非常简单的：
string.len(s)          返回字符串s的长度；
string.rep(s, n)      返回重复n次字符串s的串；你使用string.rep("a", 2^2]]></description><category></category></item><item><title><![CDATA[ngx_lua 模块]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72822734</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72822734</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 18:35:10 +0800</pubDate><description><![CDATA[ngx_lua模块的原理：

1、每个worker（工作进程）创建一个Lua VM，worker内所有协程共享VM；
2、将Nginx I/O原语封装后注入 Lua VM，允许Lua代码直接访问；
3、每个外部请求都由一个Lua协程处理，协程之间数据隔离；
4、Lua代码调用I/O操作等异步接口时，会挂起当前协程（并保护上下文数据），而不阻塞worker；
5、I/O等异步操作完成时还]]></description><category></category></item><item><title><![CDATA[linux:vi 替换命令]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72820137</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72820137</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 14:38:47 +0800</pubDate><description><![CDATA[:s/^.*$/\L&/100

＃＃将100行内的小写转换成大写


vi/vim 中可以使用 :s 命令来替换字符串。
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky]]></description><category></category></item><item><title><![CDATA[linux tar]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819963</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819963</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 14:23:29 +0800</pubDate><description><![CDATA[tar
-c: 建立压缩档案
-x：解压
-t：查看内容
-r：向压缩归档文件末尾追加文件
-u：更新原压缩包中的文件
这五个是独立的命令，压缩解压都要用到其中一个，可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z：有gzip属性的
-j：有bz2属性的
-Z：有compress属性的
-v：显示所有过程
-O：将文件解开到标准输出]]></description><category></category></item><item><title><![CDATA[linux 压缩和解压]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819940</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819940</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 14:19:33 +0800</pubDate><description><![CDATA[linux zip 命令详解 
功能说明：压缩文件。 
语 法：zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b ][-ll][-n ][-t ][-][压缩文件][文件...][-i ][-x ] 
补充说明：zip是个使用广泛的压缩程序，文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。 
参 数： 
-A 调整可执行的自动解压缩文件。 
-b 指]]></description><category></category></item><item><title><![CDATA[linux命令大全]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819895</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819895</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 14:14:03 +0800</pubDate><description><![CDATA[系统信息 
arch 显示机器的处理器架构(1) 
uname -m 显示机器的处理器架构(2) 
uname -r 显示正在使用的内核版本 
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
hdparm -i /dev/hda 罗列一个磁盘的架构特性 
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
cat /proc/cpui]]></description><category></category></item><item><title><![CDATA[svn常用命令]]></title><link>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819791</link><guid>https://blog.youkuaiyun.com/php_Zhaop/article/details/72819791</guid><author>php_Zhaop</author><pubDate>Wed, 31 May 2017 14:04:14 +0800</pubDate><description><![CDATA[查看修改的文件记录

svn cat -- 显示特定版本的某文件内容。

svn list -- 显示一个目录或某一版本存在的文件列表。

svn log -- 显示svn 的版本log，含作者、日期、路径等。

svn diff -- 显示特定修改的行级详细信息。

list示例：

svn list http://svn.test.com/svn     #查看目录中的]]></description><category></category></item></channel></rss>