首页 > phper

PHP7革新与性能优化

有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动。鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整理分享的PPT和收集相关资料,整理为这篇解读性质的技术文章,希望能给做PHP开发的同学一些帮助。

阅读全文

PHP语言的革新

最近在微博上看见PHP的开发者发布的微博(@Laruence),PHP7很可能在明年出来,同时会伴随着很多底层的优化。这真是一个重磅的消息!PHP的发展又将翻开新的一页了。而目前的PHP5.6 release,就是PHP5系列的最后一个版本了。

阅读全文

Windows下Perl开发环境的安装与配置

Perl是一种深受世界各地开发者喜爱的实用摘要和报表语言,虽然它是在Unix上诞生和发展起来的,但在Windows编程领域也已经占有一席之地。
 
在ActiveState等公司的领导之下,从1995年中期开始Perl开始了稳定地发展,不仅增加了标准的Perl功能,而且增加了许多面向Windows的功能,比如OLE和COM集成等。
 
事实上,到目前为止所有Perl程序员都已经能够确信,自己为UNIX服务器写的Perl应用移植到Windows服务器后同样能够流畅、稳定地运行,即使是fork实现这类长期以来最令人头疼的移植问题也已经得到解决。
 
而且我们有理由相信,Perl/Windows集成还将进一步发展。自Windows版Perl开发初期开始Microsoft已经成为它的主要资助者,这一事实足以证实Microsoft所承诺的对Perl的支持。按照最近Microsoft和ActiveState所签署的为期三年的投资协议,Perl无疑将成为未来Windows发展的一部分。
 
如果你正在寻找有关Windows版Perl的更多信息,你可以从网络上找到许多优秀的网站,其中包括:



阅读全文

PHP程序加速探索之加速工具软件

接着我们要关注一下PHP加速的另一个领域—缓存工具软件。这类软件都是从优化PHP运行环境来提速的,不需要改变任何代码。我们可以大概地将它们称为“执行码优化/缓存工具”,你可以理解为它们用来实现比较底层的优化/缓存。
 
以下列出目前比较常用的此类工具,具体哪种效果最好,请用自己的服务器环境测试:
  (一) APC Alternative PHP Cache
  http://pecl.php.net/package-info.php?package=APC
  APC运行于Linux和FreeBSD,你需要自己编译安装。按照其开发人员的说法,在他们的测试环境下可以提高脚本速度50%-400%。并且APC是个开源项目,已经加入了PHP的PECL库,很值得一试。
  (二) Turck MMCache
  http://turck-mmcache.sourceforge.net/
  Turck MMCache似乎是此类软件中目前最受欢迎的一种,它开放源代码,完全免费。它将PHP代码预编译并缓存起来,同时也对PHP运行环境进行一定优化。按照其官方文档的说法,MMCache可以明显地减轻服务器的负载,并提高脚本执行速度1-10倍。
  MMCache与另一个知名的加速软件Zend Optimizer兼容,但注意必需先安装MMCache(php.ini中设置)。除了加快PHP程序的速度,MMCache还可以将PHP代码加密。
  Turck MMCache同时支持Linux和Win32平台。
  (三) PHPA the PHP Accelerator
  http://www.php-accelerator
  PHPA又是另一个流行的PHP加速软件。在其官方网站上有分别使用PHPA与APC、Zend Cache的PHP脚本执行测试对比,其表现略优于APC,略逊于Zend Cache。
  PHPA支持Linux, FreeBSD, OpenBSD, BSDi和Solaris系统.
  (四) Zend Performance Suite
  http://www.zend.com/
  Zend Performance Suite是老牌的PHP加速/优化软件,依托于PHP领域最知名的Zend公司。目前已经推出4.0版本,它可以为PHP应用提供程序加速,内容缓存,文件压缩,下载服务等,功能十分强大,获得好几个PHP杂志的推荐奖—但是不得不提起,它也很昂贵,目前的价格是1875美元。
  以上几种加速软件,希望读者按照服务器环境自行测试并选择其中最适用的,因为我没有办法提供一个普遍适用的测试标准来判断哪种方案是最有效的。综合起来看,我个人认为Turck MMCache是个值得推荐的选择,免费而且功能相当出色。

阅读全文

PHP窜红:革命尚未成功 Java仍需努力

相对于Java由简入繁的演变趋势,PHP忠于简单易学原味的坚持受到广大开发者的欢迎,近年来声势大涨,而简单就是力量,这句话套用于近日PHP异军突起,再适合也不过了。老实说,原本觉得它不会太厉害,看到它最近的成长和茁壮,直攻Java阵营输于经营之处,让人对它刮目相看。
 
  Netscape前CEO Marc Andressen在Zend/PHP大会上预言,简单易学的描述语言PHP将会比Java被更多人用于Web应用的开发上;再引用Cnet台湾报导的数据,全球大约有2200万个网站使用PHP,而且数量还在稳定增加中。
 
  为什么PHP会如此受欢迎呢?我想简单好用是最大原因。如果网站只是提供使用者搜寻资讯的入口,网际网路上有许多现成、免费的、容易拿到,且已经做好的网站软体,如行事历、网站管理、新闻、报名系统、电子报、天气预报等免费的应用模组供下载安装使用,如此好康的事情,何乐而不为?而且只要买一本书,装一装,简单的设定就有讨论区,不用写任何程式,这对没有程式经验的人来说是好的进入点,也符合中小企业低成本建置网站的需求。作为Java人士,PHP的窜起给了我三个启示:
  

阅读全文

PHP学习:include()和require()的区别


include()和require()的区别 这相信是PHP中最基本的问题了,也是很多公司面试时必考的题呵呵。
给大家复习一下:
require() :如果文件不存在,会报出一个fatal error.脚本停止执行
include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行
这里特别要注意的是:
使用include()文件不存在时,脚本继续执行,这种情况只出现在PHP 4.3.5之前,这一点,往往被人忽视。
推荐使用require_once()和include_once(),可以检测文件是否有重复包含。

阅读全文

如何使用PHP通过SMTP发送电子邮件

由于PHP没有提供现成的smtp函数,却提供了一个功能不甚灵活的mail()函数,这个函数需要服务器配置上的支持,并且不支持smtp验证,在很多场合无法正常的工作,因此不建议使用。本文的目的在于为新手指明方向,并没有涉及那些高级的内容,一来本身水平有限,二来也担心不能准确的讲述相关的概念,进而对各位造成误导,还请自行深入学习。
  “使用php发送mail”最近已经成为继“register_globals”以后本版第二个新手陷阱,今天特地写这篇文章为新手解惑,希望可以为迷茫的人指明方向。
 
  让我们先从以下这个例子开始说起:
  引用:

阅读全文

什么是垂直搜索?

垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。
  垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是将网页的非结构化数据抽取成特定的结构化信息数据,好比网页搜索是以网页为最小单位,基于视觉的网页块分析是以网页块为最小单位,而垂直搜索是以结构化数据为最小单位。然后将这些数据存储到数据库,进行进一步的加工处理,如:去重、分类等,最后分词、索引再以搜索的方式满足用户的需求。
  整个过程中,数据由非结构化数据抽取成结构化数据,经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。
  垂直搜索引擎的应用方向很多,比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地图搜索、mp3搜索、图片搜索……几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。
  举个例子来说明会更容易理解,比如购物搜索引擎,整体流程大致如下:抓取网页后,对网页商品信息进行抽取,抽取出商品名称、价格、简介……甚至可以进一步将笔记本简介细分成“品牌、型号、CPU、内存、硬盘、显示屏、……”然后对信息进行清洗、去重、分类、分析比较、数据挖掘,最后通过分词索引提供用户搜索、通过分析挖掘提供市场行情报告。
  

阅读全文

Windows Apache PHP MySQL 搭建

安装php,有两种方式,这里采用其中一种,成为apache的组件
下载php: php-5.1.2-win32 和 php-5.1.2-installer.exe我就下了这两个~~~
然后将php里面的dll文件拷贝到windows/system32里面,将php.ini-dist 改位php-ini拷贝到windows目录
下载apache 安装到一个文件夹
然后修改安装后文件夹apache2conf
里面的配置文件httpd.conf
修改
Listen 127.0.0.1:80 // 其中127.0.0.1是你的ip地址
添加

阅读全文

使用MD5变换算法防穷举(冲撞)破译密码

MD5是在Web应用程序中最常用的密码加密算法。由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文。
 
  回顾在Web应用程序中使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得。但攻击者不但拥有数据量巨大的密码字典,而且建立了很多MD5原文/密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径。然而,MD5密文数据库所使用的是最常规的MD5加密算法:原文-->MD5-->密文。因此,我们可以使用变换的MD5算法,使现成的MD5密文数据库无所作为。
 

  下面演示一些变换算法的例子

阅读全文

罕见蠕虫瞄准PHP漏洞 Linux安全不在

据国外媒体报道,Linux和其他开源软件遭到病毒或黑客袭击的概率一般比较小。不过,最近所发现的一个蠕虫病毒引发了开源界的关注。因为这个病毒的袭击目标正是Linux平台上广为流行的WEB应用服用工具(平台)PHP。
 
  这个蠕虫病毒利用了PHP的XML-RPC组件中的一个漏洞。可以对网站服务器发起攻击。
  据悉,XML-RPC作为PHP的一部分,被诸如PostNuke、Drupal、b2evolution、Xoops、WordPress、PHPGroupWare和TikiWiki等产品所使用。在Lupper蠕虫病毒的消息传出以后,这些组件的开发商已经先后进行了升级或是推出了补丁包。
  由于Linux及其开源应用软件安全性比较高,杀毒软件厂商并未及时对这个蠕虫提出警告。
  XML-RPC的漏洞最初发现于今年6月,8月份报出了第二个安全警告。由于大多数用户没有升级XML-RPC,导致蠕虫病毒逐渐传播开来。

阅读全文