![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-------【PHP开发】
文章平均质量分 69
唐大麦
只要往前走,就不会迟。精疲力尽的时侯应该选择休息,切不可放弃。
展开
-
自己MARK一下:APACHE中用.htaccess去除单入口路径index.php
Options -MultiViews RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d R原创 2016-03-04 14:29:27 · 895 阅读 · 0 评论 -
PHP中用户自定义Session处理机制
session.save_handler = user,也可在 PHP 中进行设置:ini_set(‘session.save_handler’, ‘user’); 注意一定要把 “session.auto_start = 1 改成 session.auto_start = 0 ,不然设置ini_set(‘session.save_handler’, ‘user’);会引起报错。接下来着重看 se原创 2016-08-10 19:48:29 · 9017 阅读 · 2 评论 -
理解PHP依赖注入容器(dependency injection container)系列(四) Symfony服务容器:利用Builder创建服务
上篇讲述了利用继承sfServiceContainer类,为容器提供简单易用的接口调用。接下来我们会讲到如何进一步利用sfServiceContainerBuilder 类描述服务和配置。 sfServiceContainerBuilder是继承sfServiceContainer类的(每一个容器类如sfServiceContainer类都实现了sfServiceContainerInterfac翻译 2016-09-25 10:55:12 · 1545 阅读 · 0 评论 -
理解PHP依赖注入容器(dependency injection container)系列(五) 使用XML 或 YAML 来描述服务
在上篇文章中,你已学会如何用sfServiceContainerBuilder类来描述服务了。今天在loaders和dumpers两个类的帮助下,我们将学会如何用XML或YAML 来描述服务。 Symfony容器提供了helper类,它可以通过“loader objects”的方式来加载服务。通常,每个组件都自带两个方法:sfServiceContainerLoaderFileXml 加载 XM翻译 2016-09-25 11:04:40 · 1129 阅读 · 0 评论 -
下载量最高的 100 个 Laravel 扩展包推荐
Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态。本文对 Packagist 上打了 Laravel 标签 的扩展包进行整理,截止到现在 2016 年 8 月 9号,有超过 7176 个扩展包,以下是下载量最大的 100 个。相信下面这 100 个扩展包会让你的编码更加高效 :beers:为了方便跟踪文章修改和接受 PR,已转载 2016-11-07 16:21:56 · 1998 阅读 · 0 评论 -
Laravel框架开发调试工具Laravel Debugbar使用
Laravel框架开发调试工具Laravel Debugbar使用引入package包:composer require barryvdh/laravel-debugbar,在config/app.php的providers中添加一行注册Barryvdh\Debugbar\ServiceProvider::class原创 2016-10-28 11:57:18 · 7993 阅读 · 0 评论 -
理解PHP依赖注入容器(dependency injection container)系列(六)Symfony服务容器:速度至上
在前面五篇文章中,我们逐步介绍了依赖注入这种简单且有效的设计模式背后的重点概念。我们也讲了Symfony 2中实现这种轻量级容器的方法。 但随着介绍XML和YAML配置文件,你可能会有点怀疑容器本身的性能。即使服务延迟加载,在每次请求和创建对象时,通过读取一堆XML或YAML文件以内省的方式创建对象,并不是非常有效的。由于容器是使用它的应用程序的基石,它的速度确实很重要。一方面,使用XML或YAM翻译 2016-10-07 09:49:53 · 2410 阅读 · 0 评论 -
PHPCMS与CI框架整合(二):实现smarty整合并保持CI原缓存策略有效
尽管PHP的语法本身就是套很不错的模板引擎了,但是在模板中不停的敲类似<?php ?>的代码也挺烦的,整合smarty吧 CI框架:3.1.2 Smarty:3.1.30**网上有一大堆整合的例子可以用,但都不完全正确。因为他们破坏了CI框架的主流程,导致CI本身的缓存机制失效了(原机制在流程前端根据url的md5直接读取缓存),主流程必须进入到控制器再读取smarty缓存。不改不舒服,那就改吧原创 2016-11-16 20:52:20 · 1131 阅读 · 0 评论 -
PSR-4与PSR-0的区别
FIG制定的PHP规范,简称PSR,是PHP开发的事实标准。PSR原本有四个规范,分别是:PSR-0 自动加载PSR-1 基本代码规范PSR-2 代码样式PSR-3 日志接口2013年底,新出了第5个规范——PSR-4。PSR-4规范了如何指定文件路径从而自动加载类定义,同时规范了自动加载文件的位置。这个乍一看和PSR-0重复了,实际上,在功能上确实有所重复。区别在于PSR-4的规范比较干净转载 2016-11-02 16:03:50 · 6337 阅读 · 0 评论 -
PHPCMS与CI框架整合(一):实现Session共享
原系统是在PHPCMS基础上进行开发的,应用部署为www.domain.com。中途开发基于CI框架的财务功能,部署为finance.domain.com。为了实现Session共用,需同步两套框架Session体系,即:同样的Session存储介质,同样的Session_id,同样的Session.cookie_domain,功能同样的open ,read ,write ,close ,desto原创 2016-11-15 14:44:22 · 1327 阅读 · 0 评论 -
关于PHP的数据库(Mysql)连接池
今天在研究Druid连接池实现原理时,突然想到解释型的PHP的数据库连接池机制发现一篇文章《PHP 数据库连接池实现 》思路挺不错,用数组的pop()和push()实现了一个简单的连接池创建和回收的工作。但仔细思考PHP的工作模式后,发现一些问题:目前PHP的web项目常用web容器+php-fpm的方式构建。php-fpm作为一个php进程管理器,维护了一个php进程池, 在接收原创 2017-01-19 11:52:13 · 5692 阅读 · 1 评论 -
HTTPOXY漏洞下的思考
晚晚刷微博看到最新爆出的httpoxy远程代理感染漏洞的介绍今天中午看到鸟哥(风雪之隅)博客更新了:http://www.laruence.com/2016/07/19/3101.html摘录重点:在CGI(RFC 3875)的模式的时候, 会把请求中的Header, 加上HTTP_ 前缀, 注册为环境变量, 所以如果你在Header中发送一个Proxy:xxxxxx, 那么P原创 2016-07-19 16:41:18 · 882 阅读 · 0 评论 -
php-fpm使用sock配置与nginx配置sock连接
原文 http://www.51bbo.com/archives/2194 主题 Nginx PHP-FPM大部分默认的nginx连接方式为php-fpm监听127.0.0.1:9000的方式,其实php-fpm还有一种socket连接配置,相比默认的速度更好(基于内存加载)location ~ .*\.(php|php5)?$ { fastcgi_pass转载 2016-03-23 10:07:42 · 4584 阅读 · 0 评论 -
composer在update时[Composer\Downloader\TransportException] Your configuration does not allow conn出错处理
在项目中composer update组件时出现错误提示[Composer\Downloader\TransportException]Your configuration does not allow connection to http://packagist.phpcomposer.com. See https://getcomposer.org/doc/06-config.md#s原创 2016-03-25 16:42:03 · 16778 阅读 · 0 评论 -
php-fpm 启动参数及重要配置详解
约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数12345678910111213#测试php-fpm配置/usr/local/ph转载 2016-04-05 11:52:55 · 579 阅读 · 0 评论 -
php session阻塞页面分析及优化 (session_write_close session_commit使用)
这个问题很多做php开发朋友应该都有遇到过,一个启用了session_start 页面,由于执行时间过长。导致通一个用户访问,另外一个很简单的启用session_start页面一直阻塞着。 直到第一个页面执行完了。第二个页面就可以读取。这个就是,我们常说的,session阻塞机制。我用file 存放用户sessionsession默认以文件保存,当一个用户访问session_s转载 2016-08-12 09:00:57 · 2261 阅读 · 0 评论 -
PHP.INI配置:Session配置详细说明
session.save_path='/data/tmp/session';//用文件做介质时,session存储路径; 用memcache做介质时用作服务器连接串:session.save_path = "tcp://127.0.0.1:11211"//有一种设置是 "N;/path",这是随机分级存储,这个样的话,垃圾回收将不起作用,需要自己写脚本session.save_handler =原创 2016-08-10 19:46:30 · 12511 阅读 · 0 评论 -
PHP Session锁及并发机制 | void session_write_close(void)函数
也就是说session是有锁的,为防止并发的写会话数据,php自带的的文件保存会话数据是加了一个互斥锁(在session_start()的时候)程序执行session_start(),此时当前程序就开始持有锁。程序结束,此时程序自动释放Session的锁。如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,P原创 2016-08-10 19:41:10 · 3344 阅读 · 0 评论 -
综合归纳:PHP中empty()、is_null()和isset()的区别
PHP中empty()、is_null()和isset()的区别原创 2016-04-01 09:25:48 · 1064 阅读 · 0 评论 -
PHP高效率写法(详解原因)
1.尽量静态化:2.echo的效率高于print,因为echo没有返回值,print返回一个整型;3.在循环之前设置循环的最大次数,而非在在循环中;4.销毁变量去释放内存,特别是大的数组;5.避免使用像__get, __set, __autoload等魔术方法;6.requiere_once()比较耗资源;7.在includes和requires中使用绝对路径。8.如果转载 2016-03-21 17:08:51 · 526 阅读 · 0 评论 -
提高php代码质量 36计
1.不要使用相对路径常常会看到:?1require_once('../../lib/some_class.php');该方法有很多缺点:它首先查找指定的php包含路径, 然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录.另一问题, 当定时任转载 2016-03-21 17:30:41 · 398 阅读 · 0 评论 -
写给系统管理员的 25 个 PHP 安全实践
PHP是广泛使用的开源服务端脚本语言。通过HTTP或HTTPS协议,Apache Web服务允许用户访问文件或内容。服务端脚本语言的错误配置会导致各种问题。因此,PHP应该小心使用。以下是为系统管理员准备的,安全配置PHP的25个实践事例。用于下文的PHP设置样例DocumentRoot:/var/www/html默认Web服务:Apache(可以使用Lighttpd或Ng转载 2016-03-21 17:32:30 · 941 阅读 · 0 评论 -
深入理解PHP Opcode缓存原理
什么是opcode缓存?当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的。但是既然opcode cache转载 2016-03-21 21:00:17 · 422 阅读 · 0 评论 -
PHP最佳实践(译) PHP Best Practices
原文: PHP Best Practices-A short, practical guide for common and confusing PHP tasks译者:youngsterxyf最后修订日期&维护者本文档最后审阅于2013年3月8日。最后修改于2013年5月8日。由我,Alex Cabal,维护该文档。我编写PHP程序已有很长一段时间了,当前我转载 2016-03-23 10:00:05 · 676 阅读 · 0 评论 -
PHP调试及IDE环境
Step 1:IDE选择 由于以前用的工具太多,常会在eclipse中加载android,maven,j2ee,SSH,CXF等一系经工具,导致出现莫名其妙的问题。于是有了下面的建议: 下载Eclipse for PHP Developers,地址 http://www.eclipse.org/downloads/packages/eclipse-php-developer转载 2016-04-08 08:41:59 · 4205 阅读 · 0 评论 -
PHP中对像比较,比较操作符和全等操作符的区别
随手记录一下今天在开发时的一个知识点。PHP中,当使用比较操作符(==)比较两个对象变量时:如果两个对象的属性和属性值都相等,而且两个对象是同一个类的实例,认为这两个对象变量相等。而如果使用全等操作符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。 举个粟子:$obj_1 = new Myclass();$obj_2 = new Myclass()原创 2016-07-04 12:03:50 · 1006 阅读 · 0 评论 -
php中创建文件函数tempnam()与tmpfile()区别
tempnam:建立一个具有唯一文件名的文件函数原型:string tempnam ( string $dir , string $prefix )在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,tempnam() 会在系统临时目录中生成一个文件,并返回其文件名。<?php$tmpfname = tempnam(sys_get_temp_dir(), "TWM");原创 2016-07-28 08:59:11 · 3095 阅读 · 0 评论 -
PHP用curl模拟登陆并采集后台数据
PHP用curl模拟登陆并采集后台数据步骤:1、请求登陆,获取返回的保存身份信息的cookie,并存入指定cookie文件。见类login()方法2、请求需身份验证的页面,带上cookie文件。见类getcontent()方法PHP的CURL库中可以设置记录和读取cookie。有三个重点:1、CURLOPT_COOKIE: 在http头中设置cookie的信息如:curl_setopt($ch,CURL原创 2016-07-28 21:00:05 · 4671 阅读 · 1 评论 -
转开源中国的php ob_start()、ob_end_flush和ob_end_clean()多级缓冲
ob_start() 和 ob_end_flush() 是一对很好的搭档,可以实现对输出的控制。当成一对出现理解起来就没什么问题,但是当他们两个各自出现次数增加时,就比较难理解了.<?phpob_start(); echo 'level 1<br/> ';ob_start(); echo 'level 2<br/> ';ob_start(); echo 'level 3<br/>转载 2016-08-03 15:07:51 · 1998 阅读 · 0 评论 -
我所理解的php缓冲机制及嵌套级别
我理解的要点: 1、所有缓冲区控制是在一个PHP执行进程中发生的。如:你打开n个demo.php,他们之间开启和关闭缓冲是互不影响的。 2、output_buffering在程序中用ini_set是不能生效的。 3、所有缓冲区数据,如果没有手工flush刷出,则在程序结束会被解释器刷出。 4、关于嵌套级别:当顺序开启多个ob_start()时,会相应开启多个缓冲区。可以理解成队原创 2016-08-03 17:19:23 · 4426 阅读 · 0 评论 -
PHP正则贪婪/懒惰匹配模式
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。例如以下表达式将匹配以a开始,以b结束的最长字符串:a.*b如果用来搜索“aabab”,它会匹配整个字符串“aabab”。这就是贪婪匹配。有时,需要匹配尽可能少的字符,也就是懒惰匹配。前面给出的限定符都可以转化为懒惰匹配模式,只要在后面加上一个问号。例如“.*?”就意味着匹配任意原创 2016-09-12 09:51:55 · 6937 阅读 · 0 评论 -
理解HTTP/304响应(HTTP原理中的缓存机制)
原文:http://www.telerik.com/automated-testing-tools/blog/eric-lawrence/12-11-06/understanding-http-304-responses.aspx刚刚开始使用Fiddler的用户经常会对Fiddler的网络会话(Web Sessions)列表中的HTTP/304响应感到困惑:如果客户端发送的是一个条转载 2016-03-22 11:51:57 · 10559 阅读 · 0 评论