一切福田,不離方寸,從心而覓,感無不通。

Category Archives: PHP

2014 年 15 款新评定的最佳 PHP 框架

通常,框架都会被认为是帮助开发者快速设计和开发动态网站的软件应用。每个月都有极大数量的新发布的 PHP 框架,使网站开发更简单更高效。 如果你是位 PHP 开发者,正在寻找当前最好的一些 PHP 框架来帮助开发你的项目,那么这里正是你要找的地方。在这篇文章我们会介绍 15 款最好的 PHP 框架,这些框架都是最新评定的,可以大大的简化你的开发任务。这些 PHP 框架可以帮助开发者快速设计和开发各种跨浏览器的动态网站和 web 应用,最后,希望你能在这些列表中找到你想要的 PHP 框架,Enjoy !! 1. Yaf : Yet Another Framework Yaf 是第一个 PHP MVC 框架,用 C 语言编写,作为 PHP 的扩展来创建的。它被认为是最快和最低资源消耗的 PHP 框架,经过了良好的测试,并且现在已经很成功的应用在很多 web 项目上。 2. Nette Framework Nette Framework 是个现代化风格的 PHP 框架,对安全进行了革命性的改进,使用面向对象的设计理念,非一般的性能表现和超级简单的学习曲线。除了这些之外,它还有个非常活跃的社区,给予用户足够的灵活性。 3. Guzzle Guzzle 是个 PHP 框架,又是个 PHP HTTP 客户端,用来创建 RESTful web 服务客户端。它的主要特性是通过服务描述快速创建客户端;尽可能高效的批量发送大量的请求;持久性连接和并行请求;其他更多的功能。 4. Behat Behat 是个行为驱动的开发(BDD)框架,允许用户编写便于人们阅读的故事驱动代码,描述该应用应该怎样工作。任何人都能快速简单的掌握它的使用方法。 5. Phalcon Phalcon 实现了 C 的扩展,是个高性能,低能耗 PHP框架。它包括一个模版引擎,加密,分页,assets 管理和其他更多的工具。 6. Flight Flight 是个快速,简单,可扩展的 PHP 框架,允许用户快速简单的创建 RESTful web 应用。 7. Webasyst Webasyst 是个开源的 PHP 框架,用来开发时尚的多用户 web 应用和高级的网站。相对比其他框架,比如Zend 和 Symfony,它更注重于构建商业和给团队使用的 web 应用,更快更高效。 8. Medoo Medoo 是个轻量级的 PHP 数据库框架,帮助用户快速开发 web […]

龙生   19 Feb 2014
View Details

如何配置Eclipse PHP 集成开发工具(PDT)

下载Eclipse PDT All-In-One http://download.eclipse.org/tools/pdt/downloads/ 安装Zend Debugger   · 选择Help->Software Updates->Find and Install · 选择 Search for new features to install, 点击 Next · 点击 the New Remote Site 按钮… Name: Zend Debugger URL: http://downloads.zend.com/pdt · Zend Debugger 现在在Sites to include in search 列表被选中, 点击 Finish按钮。 同样的方式安装JSEclipse(如果需要团队合作还可以装上Subclipse提供对Subversion 的支持) Name: JSEclipse URL: http://download.macromedia.com/pub/labs/jseclipse/autoinstall Name: Subclipse 1.2.x URL: http://subclipse.tigris.org/update_1.2.x Name: Aptana URL:  http://update.aptana.com/update/3.2/ PDT调试方法 PHP Executable Debugger Zend Executable Debugger – 免费的Eclipse插件,在Eclipse 环境提供可执行的调试功能 PHP Web Server Debugger Zend Web Server Debugger – 安装在Web 服务器端的调试工具 XDebug Components – XDebug用于Web 服务器端的调试 注:版本发布类型 Released Builds – 稳定经过测试的发布版,可能不包含最新的功能特性 Stable […]

龙生   23 Nov 2013
View Details

Eclipse 3.7 / Indigo / PDT 3.0

From Update Site Prerequisites Installed and running Eclipse Classic 3.7 The minimum package is Eclipse Platform Runtime Binary. It is available at here Any packages in Eclipse Downloads page are available also. Installation Flow Open Help -> Install New Software. Select the Indigo update site. When the list of existing features is populated – select 'PHP Development Tools'. Make sure 'Contact all update sites…' is checked. Proceed with the installation by pressing 'Next', then press 'Next' again in the next screen. Accept the EULA when asked: Finish the […]

龙生   21 Nov 2013
View Details

一个数字转换为汉字的函数

/** * 数字转换为中文 * @param string|integer|float $num 目标数字 * @param integer $mode 模式[true:金额(默认),false:普通数字表示] * @param boolean $sim 使用小写(默认) * @return string */ function number2chinese($num,$mode = true,$sim = true){ if(!is_numeric($num)) return '含有非数字非小数点字符!'; $char = $sim ? array('零',’一',’二',’三',’四',’五',’六',’七',’八',’九') : array('零',’壹',’贰',’叁',’肆',’伍',’陆',’柒',’捌',’玖'); $unit = $sim ? array(",’十',’百',’千',",’万',’亿',’兆') : array(",’拾',’佰',’仟',",’萬',’億',’兆'); $retval = $mode ? '元':’点'; //小数部分 if(strpos($num, '.')){ list($num,$dec) = explode('.', $num); $dec = strval(round($dec,2)); if($mode){ $retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分"; }else{ for($i = 0,$c = strlen($dec);$i < $c;$i++) { $retval .= $char[$dec[$i]]; } } } //整数部分 $str = $mode ? strrev(intval($num)) : strrev($num); for($i […]

龙生   28 Sep 2013
View Details

为 PHP 开发者准备的 12 个调试工具

PHP是在实践中发展迅速并被最多使用的脚本语言;包含了诸如详细的文档、庞大的社区、无数可使用的脚本及支持框架等许多特性。PHP提供的这些特性使得它比Python或Ruby等脚本语言更容易上手。 为构建极具创新乐趣的Web应用,PHP开发人员持续搜寻着有用的工具。在这篇文章中,我收集了开发人员的12个PHP调试工具,它们将有助于开发人员轻松找出并调试应用程序及脚本中的错误。下面的PHP调试工具支持Ajax请求,并包含通用数据采集器和基于堆栈的错误处理器。我希望你能在未来的项目中体会到这个列表的方便和有用之处。 1. Kint 当调试PHP代码时,var_dump()、print_r()和debug_backtrace()是我们最常用的工具。Kint,一个开源软件,一个不需安装的替代者,它提供了更好的调试体验。它巧妙地检测几乎不可读的数据,并将它们定制成规则的输出显示。变量名、文件、行号及包装的函数它全能提示出来。 源码 2. DebugBar DebugBar是一个自由开源软件,它可以被集成到任何PHP项目用来收集和定位数据。它没有第三方依赖,支持Ajax请求,包含通用数据收集器且集成常见的库。生成的bar是100% JavaScript实现的并被放置在页面底部(像开发工具一样)。新的收集器和视图可以被轻松的添加,并且可以保存或重新运行以前的请求。 源码 3. Pinba Pinba是一个可作为PHP统计服务使用的开源MySQL存储引擎。它使用收到的数据来分析PHP应用性能并快速定位任何问题。 源码 4. PHPMD PHPMD是一个易于配置,对PHP原始依赖指标友好的前端。它在你的代码中的寻找多种潜在问题,包括可能的bug、不适合的代码、未使用的参数等。 源码 5. Xde Bug Xdebug是一个自由开源的用于调试和分析PHP脚本细节的PHP扩展。由于它是一个扩展,所以使用起来很方便,且在编码端只需要很少的设置。它可以提供错误信息中堆栈跟踪和函数跟踪的所有数据,包括用户定义函数的所有参数、函数名、文件名以及行标志。Xdebug还可以提供内存分配、分析信息和代码覆盖率分析的数据。 源码 6. Whoops Whoops是一个使错误处理和调试更容易的PHP库。这个库提供基于堆栈的错误处理,并且有一个好看的界面。它有一个处理异常的简单API,能够跟踪帧及它们的数据,并可以与任何框架整合(end和Silex已经内置集成)。 源码 7. Krumo 很多PHP开发者使用print_r()和var_dump()对输出难读或未格式化的结果进行调试。Krumo是这些函数的一个替代者,它可以显示任何PHP变量的结构化信息。Krumo运行后,输出会显示成一个围绕PHP变量的可折叠的DHTML树结构。同时,它通过自身把调试过程“关掉”而不是禁用代码里的所有追溯路径的能力加快了调试过程。 源码 8. Php Debugger 调试是发现并修复bug的过程,PHP Debugger是帮助你快速的找到错误并将它们从你的PHP程序中移除的最好的工具。你可以在PHPEd中设置远程调试,通过Wizardand DBG向导中的PHP调试设置开启。 源码 9. Php Debug PHP_Debug的基本目的是在调试PHP代码时提供援助。 源码 10. Webgrind Xdebug是最受欢迎的PHP调试扩展之一。它提供了许多有用数据来帮助你在源码中查找bug。 源码 11. PHP_Dyn PHP_Dyn是有一个优秀的开源PHP调试工具。你可以跟踪函数执行并得到函数参数和返回值的一个输出。 源码 12. MacGDBp MacGDBp是一个MAC OS上的PHP调试器。它有你所期望的所有特性,是一个包含逐句运行及设置断点等功能的全功能调试器。 源码   转自:http://www.oschina.net/translate/12-php-debugging-tools-for-developers

龙生   12 Sep 2013
View Details

WordPress伪静态怎么实现

在用wordpress做固定链接想实现静态化的时候,有时候会出现死链。这个时候就需要设置一下WordPress的伪静态了。 工具/原料 wordpress、ftp软件 步骤/方法 1 新建一个404.php文件,通过ftp软件上传到网站根目录web下,代码如下: <?php $pos = strrpos($qs, '://'); $pos = strpos($qs, '/', $pos + 4); $_SERVER['REQUEST_URI'] = substr($qs, $pos); $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI']; include('index.php'); ?> 2 登录虚拟主机设置下404出错页 3 WordPress控制面板设置固定链接:控制面板-设置-固定链接-自定义结构 4 想设置其他链接格式,可参考以下结构标签: %year%:日志发表的年份,四位数字,如2009 %monthnum%:日志发表的月份,如05 %day%:日志发表的日期,如28 %hour%:日志发表的时间(小时),如15 %minute%:日志发表的时间(分钟),如43 %second%:日志发表的时间(秒),如33 %postname%:日志标题的缩略版本(日志/页面编辑界面上的日志别名)。因此“This Is A Great Post!”在URI中会变成this-is-a-great-post。 %post_id%:日志的唯一ID,如423 %category%:分类名称的缩略版本(添加新分类/编辑界面上的分类别名)。嵌套的子分类会作为嵌套子目录出现在URI中。出于运行方面的考虑,不推荐以%category%作为固定链接的起始部分。 %tag%:标签名称的缩略版本(添加新标签/编辑界面上的标签别名)。出于运行方面的考虑,不推荐以%tag%作为固定链接的起始部分。 %author%:作者名称的缩略版本。 转自:http://jingyan.baidu.com/article/4f7d5712824b4b1a201927bf.html

龙生   05 Aug 2013
View Details

c#+mysql 中文乱码

遇到一个奇怪的问题,C#读取mysql中文正常,写入时发生乱码 网上查阅原因,发现如下信息 ——————————————————————— 一、错误读出 现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件、网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码。 分析:其它系统都可以正常查看数据,说明数据本身是没有问题的。在网页中显示乱码,一定是网页的编码字符集和获取到的数据的编码字符集不一至。比如数据库的字符集是UTF8的,而网页的字符集是gb2312的,那么网页就会把UTF8编码的字体串当作gb2312的来处理,结果产生乱码。 解决办法:在连接数据库时,设定连接字符集,使连接字符集和当前网页或客户端程序使用的字符集一致。可以使用MySQL的Set Names指令设定连接字符集。假设网页的字体集为gb2312。在连接MySQL后,在连接上执行如下SQL语句: Set Names ‘gb2312’ 在以后所有这个连接上的查询,MySQL都会自动把数据库中的数据转换成gb2312编码格式传过来。 二、错误写入 现象:一个网页或程序向一个MySQL数据库中写数据,写完后,这个网页或程序自己可以正常读取数据,而从其它客户端或网页中读取数据都是乱码。 分析:其它的正常的客户端出现乱码,说明数据库中的字符编码不对。写数据的那个网页能正常读取,是因为写和读都用了错误的编码格式,将错就错,反而能读出正确的数据了。比如数据库中设定的字符集为UTF8,而网页使用gb2312编码执行了插入数据的SQL,那么MySQL就会把这些gb2312的编码当成是UTF8的编码写进数据库。当其它客户端访问数据时,会按系统的设定,以UTF8 格式读取数据,而数据其实是使用gb2312编码的,结果就出现了乱码。只有写数据的那个网页会把这些数据当成gb2312的,也只有那个网页能正常显示数据。 解决办法:同第一条,即:使用Set Names指令设定连接字符集。 在设定了连接字符体的连接上执行数据操作,所有的数据都将被MySQL自动、正确地转换为数据库中设定的编码格式保存。 通过以上两点,我们可以看到,只要在连接MySQL时,正确地设定了字符集,无论数据库本身是使用什么格式编码的,都能得到正确的结果。也许有人会以为写数据时设定的字符集必需和读数据时一致,事实上完全没有必要。程序所要做的只是告诉 MySQL,目前操作MySQL使用的是什么字符集即可。因为MySQL会自动完成如下的转换工作: 写数据库时用的字符集-->存诸数据的字符集-->读取数据的字符集。 笔者以为MySQL对多语言字符集的处理是非常优秀的,并且每次建立到MySQL的连接都会立刻使用Set Names设定字符集,然而最近还是出现了一回乱码,如下面所述。 三、无知的程序包 现象:使用C#编程,使用MySQL提供的连接程序库包访问数据库,使用 MySqlConnection类连接数据库,连接之后立刻调用Set Names设定连接字符串,然后使用MySqlCommand类执行SQL,并使用MySqlDataReader读取数查询结果。然而,当我调用 MySqlDataReader的成员方法GetString获取数据的时候,发现得到的全是乱码。百思不得其解。 分析:经仔细检查,确信问题没有出在MySQL连接上面,这时我想到了C#中对 string类型的处理。在C#中字符串和C/C++中有很大不同。在C/C++中一个字符就是一个字节,而在C#中,按不同的编码格式,一个字符也可以是多个字节的。比如”啊”就是一个字符,如果一个字符串s=”啊”; 那么s的Length属性为1,而不是C/C++中的2。我想MySQL程序包也许并不知道连接上传过来的字符是什么编码的,它因为无知,所以只是按单字节字符把这些数据组织成一个string,这个生成的string就是我得到的乱码。事实上也的确是这样。 解决办法:把这些数据重新组织起来,然后使用正确的编码方法重新生成string。C#中System.Text包内的Encoding类提供了字符集的编/解码方法。 1)首先还是设定连接字符集,以确认收到的字符的编码方式。 2)把GetString得到的字符串转换到byte数组中。 3)使用Systec.Text.Encoding包中相应字符集的解码方法GetString得到新的字符串。 为了通用性,我们使用System.Text.Encoding的默认字符集。连接数据库时,设置数据库连接字符集使用的SQL指令strSetCharset为如下值: string strSetCharset = “Set Names ” + System. Text. Encoding .Default. HeaderName; 在获取数据时,使用下面的函数得到真正的字符串: private string DBStringToNormal(string dbStr)        {          byte[] str = new byte[dbStr.Length];          for (int i = 0; i < dbStr.Length; ++i)             str[i] = (byte)(dbStr[i]);     return System.Text.Encoding.Default.GetString(str, 0, […]

龙生   05 Aug 2013
View Details

WordPress数据库中的表、字段、类型及说明 [3]

前面的第一、第二部分已经对Wordpress中的十张表里的七张进行了说明,这里要介绍的是剩下的三张表的有关情况。 wp_posts: 用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。 ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。 post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。 post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。 post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。 post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。 post_title – 文章的标题,text值。 post_category – 文章所属分类,int(4)值。 post_excerpt – 文章摘要,text值。 post_status – 文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已 发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。 comment_status – 评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允 许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。 ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。 post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。 post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。 to_ping – 强制该文章去ping某个URI。text值。 pinged – 该文章被pingback的历史记录,text值,为一个个的URI。 post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。 post_modified_gmt – 文章最后修改的GMT时间,datetime值。 post_content_filtered – 不详,text值。  post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。 guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的Wordpress站点地址+文章名。 menu_order – 不详,int(11)值,默认为0。 post_type – 文章类型,具体不详,varchar(100)值。默认为0。 post_mime_type – 不详。varchar(100)值。 comment_count – 评论计数,具体用途不详,bigint(20)值。   wp_usermeta : 用于保存用户元信息(meta)的表,共4个字段: umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。 […]

龙生   05 Aug 2013
View Details

20 个实用的 PHP 库(图表、图片、数据等)

摘要:PHP开发技术在这几年依然比较火热,也有越来越多的开发者加入到了PHP开发阵营,在复杂的框架和冗余的代码面前,选择合适的PHP库就显得 尤为重要,优秀的PHP库可以为你节省很多代码和编码时间。 下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。 图表库 下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。 pChart – 一个可以创建统计图的库。 Libchart – 这也是一个简单的统计图库。 JpGraph – 一个面向对象的图片创建类。 Open Flash Chart – 这是一个基于Flash的统计图。 RSS 解析 解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。 MagpieRSS – 开源的PHP版RSS解析器,据说功能强大,未验证。 SimplePie – 这是一个非常快速,而且易用的RSS和Atom 解析库。 缩略图生成 phpThumb – 功能很强大,如何强大还是自己去体会吧。 支付 你的网站需要处理支付方面的事情?需要一个和支付网关的程序?下面这个程序可以帮到你。 PHP Payment Library – 支持Paypal, Authorize.net 和2Checkout (2CO) OpenID PHP-OpenID – 支持OpenID的一个PHP库。OpenID是帮助你使用相同的用户名和口令登录不同的网站的一种解决方案。如果你对OpenID不熟悉的话,你可以到这里看看:http://openid.net.cn/ 数据为抽象/对象关系映射ORM ADOdb – 数据库抽象 Doctrine – 对象关系映射Object relational mapper (ORM) ,需要 PHP 5.2.3+ 版本,一个非常强大的database abstraction layer (DBAL). Propel – 对象关系映射框架- PHP5 Outlet – 也是关于对象关系映射的一个工具。 注:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形 式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元 数据。 PDF 生成器 FPDF – 这量一个可以让你生成PDF的纯PHP类库。 Excel 相关 你的站点需要生成Excel?没有问题,下面这两个类库可以让你轻松做到这一点。 php-excel […]

龙生   02 Jul 2013
View Details
1 22 23 24 29