
php
果子妈妈
上善若水
展开
-
什么是依赖注入
把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。实例:Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。这样做有什么好处呢?解释:假如现在有N多个类,需要用到Class B,那就需要在类里面实例化N多次,这样对于后期的维护和管理都是不方便的,如果后期需求发生转载 2020-11-03 12:03:22 · 355 阅读 · 0 评论 -
PHP加密
https://github.com/liexusong/php-beastZend Guard ;Zend Guard不仅可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理,还可以为许多软件生产商、IT服务提供商提供完善的加密和安全的产品发布系统。...原创 2019-11-29 11:19:35 · 205 阅读 · 0 评论 -
php单例模式实现对象只被创建一次
这是我在php面试题中遇到的一道试题,单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费。单例类至少拥有以下三种公共元素: 必须拥有一个构造函数,并且必须被标记为private。 拥有一个保存类的实例的静态成员变量。 拥有一个访问这个实例的公共的静转载 2015-09-09 10:43:24 · 394 阅读 · 0 评论 -
关于PHP引用(符号&)的用法
php的引用(就是在变量或者函数、对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址转载 2015-09-06 09:52:43 · 330 阅读 · 0 评论 -
基于Ha基于Hash算法的Mysql分表处理zsh算法的Mysql分表处理
下面为您介绍的Mysql分表处理是基于Hash算法的,在了解该Mysql分表处理方法之前,让我们先来了解一下Hash算法。我们知道Hash表就是通过某个特殊的Hash算法计算出的一个值,这个值必须是惟一的,并且能够使用这个计算出来的值查找到需要的值,这个叫做哈希表。我们在分表里的hash算法跟这个思想类似:通过一个原始目标的ID或者名称通过一定的hash算法计算出数据存储表的表名,然后访问转载 2015-05-04 13:17:59 · 425 阅读 · 0 评论 -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案 .
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Shardi翻译 2015-05-04 13:04:37 · 1249 阅读 · 0 评论 -
CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法 .
众所周知,LAMP代表Linux下Apache、MySQL、PHP这种网站服务器架构;而LNMP指的是Linux下Nginx、MySQL、PHP这种网站服务器架构。LNMP一键安装包可以从网上下载使用。Nginx(发音同 engine x)由 Igor Sysoev 用C语言为俄罗斯访问量第二的搜索引擎 Rambler.ru 站点开发,是一款轻量级的Web 服务器/反向代理服务器及电子邮件转载 2014-12-15 12:43:20 · 1510 阅读 · 0 评论 -
WinInet
1、WinInet 是一个网络编程接口,包含了 Internet 底层协议 HTTP,FTP。2、借助 WinInet 接口,可不必去了解 Winsock、TCP/IP 和特定 Internet 协议的细节就可以编写出高水平的 Internet 客户端程序。3、WinInet 为 HTTP、FTP 提供了统一的函数集,也就是 Win32 API 接口。4、WinInet 简化了 H转载 2015-01-13 14:57:43 · 970 阅读 · 0 评论 -
日志
可以找到apache 的 运行文件在哪 find / -name apachectl/usr/sbin# service apache2 start原创 2015-01-13 18:17:49 · 350 阅读 · 0 评论 -
synchronized 用法总结 .
synchronsynchronized用到不同地方对代码产生的影响:1. synchronized关键字修饰方法假设P1、P2是同一个类的不同对象,这个类中定义了以下几种情况的同步块或同步方法,P1、P2就都能够调用他们。public synchronized void method(){ // }这也就是同步方法,那这时synchronized锁定的是调用这转载 2015-11-11 11:18:37 · 300 阅读 · 0 评论 -
PHP使用方法重载实现动态创建属性的get和set方法
class Car { public $name = 'car'; public function __clone() { $obj = new Car(); $obj->name = $this->name; }}$a = new Car();$a->name = 'new car';$a->getti转载 2015-11-11 17:05:14 · 578 阅读 · 0 评论 -
PHP动态创建属性的get和set方法
在PHP中,我们不能够直接通过方法名相同,签名不同的方法来实现方法重载,因为PHP是弱数据类型,不能很好的区分签名。但是,可以在PHP的类中运用__call()方法来实现方法重载。当调用一个类中并不存在的方法时,会自动调用__call()方法,其形式为__call($name,$arguments) 其中$name是方法的名称,$arguments是一个数组类型的参数。下面的例子是使用PH转载 2015-11-11 23:06:07 · 889 阅读 · 0 评论 -
php_mysql、php_mysqli 与 pdo_mysql 的区别与选择
结论:使用pdo、自动化SQL(db-sql-maker-php)、查询用PDO::query()、格式化用PDOStatement::fetchAll()。php代码的可移植性——从mysql迁移到其他数据库(比如pgsql)时,php代码不用修改: 使用自动化SQL结果:php代码是否可移植php_mysqli是否php_mysq转载 2015-11-13 20:54:08 · 498 阅读 · 0 评论 -
PHP filter_input() 函数
PHP filter_input() 函数PHP Filter 函数定义和用法filter_input() 函数从脚本外部获取输入,并进行过滤。本函数用于对来自非安全来源的变量进行验证,比如用户的输入。本函数可从各种来源获取输入:INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_ENVINPUT_SERVERINP转载 2015-12-05 14:05:25 · 452 阅读 · 0 评论 -
开源压力测试工具Jmeter(初级使用)
一、下载Jmeter以及插件安装Jmeter下载网址:http://jmeter.apache.org/download_jmeter.cgi插件下载:http://code.google.com/p/jmeter-plugins/downloads/list这里使用的Jmeter的版本为2.7,需要运行在Java1.5版本以上。下载的插件用于监控Server端的CPU、IO、Me转载 2015-12-27 09:56:38 · 462 阅读 · 0 评论 -
PHP 对象序列化
对象序列化序列化对象 - 在会话中存放对象所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。为了能够unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回转载 2016-01-14 18:05:44 · 544 阅读 · 0 评论 -
XAMPP和VMware Workstation占用443端口冲突的解决办法
今天安装了一个VMware Workstation,发现XAMPP的Apache就启动不了。看了一下错误日志,似乎是VMware Workstation占用了443端口导致冲突引起的。查看了一下,原来VMware Workstation有个共享虚拟机的服务,占用了443端口。今天安装了一个VMware Workstation,发现XAMPP的Apache就启动不了。看了一下错误日志,似乎是转载 2017-01-14 15:30:08 · 681 阅读 · 0 评论 -
ts和nts的区别 (redis中碰到)
【TS指Thread Safet y线程安全 NTS即None-Thread Safe 非线程安全】区别:【TS NTS】TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本(window+apche+php+mysql+redis[ts])。NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能...转载 2018-03-22 15:10:49 · 1460 阅读 · 0 评论 -
XHProf 使用手册
XHProf 使用手册XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销。原始数据收集部分是用纯C实现的,是一个名叫xhprof的 Zend扩展 。XHProf有一个简单的HTML的用户界面( PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制转载 2014-12-22 17:48:55 · 918 阅读 · 0 评论 -
http://blog.youkuaiyun.com/callmeback/article/details/8130190
http://blog.youkuaiyun.com/callmeback/article/details/8130190转载 2014-12-06 00:59:54 · 358 阅读 · 0 评论 -
CodeIgniter实现读写分离
当前服务器只做了主从,未配置读写分离,读写分离的功能就只有交给程序来实现,本文主要谈谈Codeigniter怎么实现读写分离,并且需要满足以下两点:1、读写分离对开发应该透明。网上有方案通过手动load多个DB来实现读写分离,这样的分离跟业务关联太紧,增加了开发难度也不利于维护,我们要做的是默认读重库,写则写主库,读写分离对开发者透明2、配置简单。保留现有的配置方式,通过增加一个数转载 2014-12-15 19:18:27 · 1197 阅读 · 0 评论 -
自动运行php文件
一个老文章了,不错,找出来大家吐槽,所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的。利用Windows 2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需 要。下面以Windows 2000为例。 具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤转载 2013-07-31 17:04:09 · 478 阅读 · 0 评论 -
PHP抓取页面的几种方式
我们在开发网络程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。下面简单说一下php抓取页面的几种方法及原理:一、 PHP抓取页面的主要方法:1. file()函数 2转载 2013-07-31 17:08:17 · 439 阅读 · 0 评论 -
PHP的编辑原理
http://www.cnblogs.com/phphuaibei/archive/2011/09/13/2174927.html转载 2013-08-01 16:02:56 · 428 阅读 · 0 评论 -
PHP中的魔术变量小结
PHP中,有不少很好用的魔术变量,用好之,能事半功倍,下面小结之: 1 _LINE_ 显示当前代码的行数: echo "This is line number : ". __LINE__; 2 _FILE_ 显示当前文件的路径 3 _METHOD_ 显示当前方法的名,比如 class Magicconstant {转载 2013-08-02 15:30:06 · 486 阅读 · 0 评论 -
php代码架构八点要注意
写代码写了6年多了,看看以前的架构,看看现在的架构。都有一些不足的地方。不管怎么样,都一直在改进。说实话不太喜欢用框架这类东西,基本上所有的框架都大同小异,差不了多少,要用话的,你还要去了解思想,目录结构,文件调用,文件命名,代码规范等,挺浪费时间的。构架能满足很大一部分的要求,满足的人越多性能越差,这也是我不喜欢用架构的一个主要原因。下面说一下,代码架构方面的一些心德。一,面向对象为主,面向转载 2013-08-02 15:40:47 · 568 阅读 · 0 评论 -
php连接到MySQL数据库服务器时三种主要的API:mysql,mysqli,pdo区别及联系
Overview这一部分对在PHP应用开发过程中需要和Mysql数据库交互时可用的选择进行一个简单介绍。什么是API?一个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数,变量等等一切 你的应用程序中为了完成特定任务而需要调用的内容。在PHP应用程序需要和数据库进行交互的时候所需要的API 通常是通过PHP扩展暴露出来(给终转载 2013-08-02 15:05:59 · 1382 阅读 · 0 评论 -
ci框架mysql数据库连接资源无法释放
使用ci框架提供的类查询数据: $this->load->database(); $query = $this->db->query($sql); 程序运行一段时间之后,报错,告知数据库too many connections 很明显mysql数据库连接资源超过了 max_connections 设定值。立马在每个查询之后,添加资源释放脚转载 2014-05-03 19:42:48 · 438 阅读 · 0 评论 -
php使用memcached
介绍:memcached是一种缓存技术, 基于c/s模式,他可以把你的数据放入内存,从而通过内存访问提速,因为内存最快的, memcached技术的主要目的提速,在memachec 中维护了一张大的hashtable表 ,该表是在内存,表的结构是key value字串 (字串,数值,数组,对象,布尔,二进制数据,null)u 安装并使用memcached转载 2014-09-12 13:54:44 · 392 阅读 · 0 评论 -
PHP的buffer
PHP的buffer是这样的:输出的字符串 => PHP buffer => 等待输出 => web 服务器的缓冲区 => tcp 缓冲区 => 客户端。过程其实相当的复杂。我大概和你说说几个函数的工作机制吧:bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )转载 2014-10-24 10:16:06 · 537 阅读 · 0 评论 -
HTTP请求报头 .
HTTP请求报头2012-03-04 18:14 425人阅读 评论(0)收藏 举报服务器浏览器文档authorizationservletcredentialsHTTP头字段包括4类: general-header ; request-header ; response-header ; entity-header . ********转载 2014-10-23 11:52:59 · 544 阅读 · 0 评论 -
gzcompress、gzencode、gzdeflate压缩比比较
PHP的自带的函数中,有三个压缩相关的函数:gzcompress、gzencode、gzdeflate,下面我们通过一段程序,来比较一下这三个函数的压缩比。代码:$string = "8aeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer8aaaaaaaaaaaaaaaaaaaaaaadasd456asd456asd456asd456asd456asd45转载 2014-10-24 11:17:32 · 1023 阅读 · 0 评论 -
php脚本的执行过程(编译与执行相分离)
php的编译和执行是分离开的,亦即:先执行完编译,而后再执行。很多人会说:c++也是如此啊,确实。不过php的这种分离可以给我们提供很多便利,当然不可避免也有很有缺点。先说一下整个过程:①php会调用编译函数zend_compile_file()来进行编译。 这个函数的具体实现其实是包括两个主要过程的:词法分析(Lex实现),语法分析(Yacc实现)。当执行完这个函数之后:php脚本的转载 2014-10-24 12:27:41 · 478 阅读 · 0 评论 -
PHP工作模型与运行机制
PHP的工作模型非常特殊。从某种程度上说,PHP和ASP、ASP.NET、JSP/Servlet等流行的Web技术,有着本质上的区别。以Java为例,Java在Web应用领域,有两种技术:Java Servlet和JSP(Java Server Page)。Java Servlet是一种特殊类型的Java程序,它通过实现相关接口,处理Web服务器发送过来的请求,完成相应的工作。JSP在形式上是转载 2014-10-25 10:35:58 · 353 阅读 · 0 评论 -
FastCGI
FastCGI简介CGI全称是“通用网关接口”(Common Gateway Interface),它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。 CGI描述了客户端和这个程序之间传输数据的一种标准。 CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。FastCGI是Web转载 2014-10-25 11:46:17 · 519 阅读 · 0 评论 -
PHP底层运行机制
简介我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);PHP总共有三个模块:内核、Zend引擎、以及扩展层; PHP内核用来处理请求、文件流、错误处理等相关操作; Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它; 扩展层是一组函数、类库和流转载 2014-10-25 10:25:11 · 382 阅读 · 0 评论 -
PHP运行模式
PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli 命令行运行 (Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式)1. CGI(Common Gateway Inte转载 2014-10-25 11:55:19 · 324 阅读 · 0 评论 -
nginx下支持PATH_INFO详解
要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo?pathinfo不是nginx的功能,pathinfo是php的功能。php中有两个pathinfo,一个是环境变量$_SERVER['PATH_INFO'];另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;。nginx能做的只是对$_SERV转载 2014-12-15 14:54:38 · 445 阅读 · 0 评论 -
所谓PHP分页也就这么回事
select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize原创 2013-07-31 14:56:29 · 423 阅读 · 0 评论