编程语言---PHP
辛星
生命不息,奋斗不止。
展开
-
用PHP去实现静态化
我们在PHP网站开发过程中为了网站的推广或者SEO的需要,需要对网站进行一定的静态化,这里设计到什么是静态页面,所谓的静态页面,并不是页面中没有动画等元素,而是指网页的代码都在页面中,即不需要再去执行PHP脚本等服务器端的语言去运行,我们可以直接访问到的网页,这就是静态网页。 那么静态网页有什么好处呢?第一个主要原因就是因为搜索引擎,由于搜索引擎对PHP页面搜鹿和html页面的收录有一原创 2014-07-22 08:50:19 · 1865 阅读 · 0 评论 -
一些经常被问到的知识整理
好久没写过php方面的博客了,由于在qq上这些东西经常会被问到,因此稍微整理一下,希望有所帮助。VC6:legacy Visual Studio 6 compiler,就是使用这个编译器编译的。VC9:Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,原创 2016-03-16 18:42:54 · 427 阅读 · 0 评论 -
zend引擎中php扩展返回值的宏
ZEND_API提供参数返回方式设置返回值并且结束函数设置返回值宏返回类型和参数RETURN_LONG(l)RETVAL_LONG(l)整数RETURN_BOOL(b)RETVAL_BOOL(b)布尔数(1或0)RETURN_NULL()RETVAL_NULL()NULLRETURN_DOUBLE(转载 2016-01-09 03:58:17 · 461 阅读 · 0 评论 -
声明php内核zend中的参数小结
声明扩展函数的参数基本方式如下:ZEND_BEGIN_ARG_INFO(name, 0|1) ZEND_END_ARG_INFO() 而每一个参数的定义可以是下列宏定义中的一个:ZEND_ARG_INFO 声明普通参数ZEND_ARG_OBJ_INFO 声明对象类型的参数ZEND_ARG_ARRAY_I原创 2016-01-09 03:55:20 · 426 阅读 · 0 评论 -
zend中常见的宏定义操作
1234CG -> Complier Global 编译时信息,包括函数表等(zend_globals_macros.h:32)EG -> Executor Global 执行时信息(zend_globals_macros.h:43)PG -> PHP Core Global 主原创 2016-01-09 03:51:51 · 1218 阅读 · 0 评论 -
php内核中与线程相关的操作
在TSRM/TSRM.h文件中有如下定义12345678#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)#define TSRMLS_FETCH_FROM_C转载 2016-01-09 03:49:07 · 766 阅读 · 0 评论 -
转载的一篇关于vld的文章
VLD(Vulcan Logic Dumper)的简介如下:The Vulcan Logic Dumper hooks into the Zend Engine and dumps all the opcodes (execution units) of a script. It can be used to see what is going on in the Zend Engine.转载 2016-01-06 00:58:28 · 493 阅读 · 0 评论 -
php命令行查看已安装的模块的方式
之前一直没记住,这里在这里写下来: php -m原创 2015-12-30 00:52:58 · 7319 阅读 · 0 评论 -
编译php系统的一个小问题
没什么好写的,如果遇到下面的情况:configure: error: xml2-config not found. Please check your libxml2 installation 一般只需要如下即可: yum install libxml2 yum install libxml2-devel原创 2015-12-30 00:33:08 · 709 阅读 · 0 评论 -
PHP中对变量的一些说明
如果程序比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 "&" 方式,然后用$var=null的方式清除. php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。 php中对于地址的指向功能不是由用户自己来实现的,是由Zend核心实现的 php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同原创 2016-03-17 02:18:17 · 316 阅读 · 0 评论 -
转载一篇对php变量名的问题,很有意思,之前没注意过
在PHP语言中,变量都是保存在哈希表中,称为变量符号表,其中变量名为哈希表的键,变量名对应的容器zval的指针为哈希表中的值。所有全局变量放在一张主符号表中(也就是数组$GLOBALS对应的哈希表)。PHP语言有个特性,变量在命名时,$变量标识符后不能以数字开头。例如我们在以下代码:$111= "my";?>会报如下错误:Parse error: syntax er转载 2016-03-18 00:29:09 · 996 阅读 · 0 评论 -
Mac下配置nginx和php环境
环境信息:Mac OS X 10.11.1Homebrew 0.9.5正文一、安装 Nginx终端执行:brew search nginxbrew install nginx当前版本 1.6.2安装完以后,可以在终端输出的信息里看到一些配置路径:/usr/local/etc/nginx/nginx.conf原创 2016-08-30 07:45:34 · 6609 阅读 · 1 评论 -
configure: error: Cannot find php-config.的问题
在安装php扩展的时候,遇到configure: error: Cannot find php-config. Please use --with-php-config=PATH 的问题,这个时候我们在使用./configure的时候只需要加上--with-php-config=具体的路径就可以了。原创 2016-08-29 22:40:42 · 2101 阅读 · 1 评论 -
对CI_Security类的注释
defined('BASEPATH') OR exit('No direct script access allowed');//安全类class CI_Security {/*** 需要清理的字符** @var array*/public $filename_bad_chars =array('../', '', '',"'", '原创 2016-07-14 15:04:24 · 829 阅读 · 0 评论 -
nginx和php文件大小限制修改
其中nginx的配置项为:client_max_body_size其中php的配置项为:upload_max_filesize 一般来说,这两个会同时起作用的原创 2016-06-15 11:33:28 · 458 阅读 · 0 评论 -
PHP中获取类、方法、属性
__CLASS__ 获取当前类名,区分大小写__FUNCTION__ 当前函数名,区分大小写__METHOD__ 当前方法名,区分大小写 get_class(obj);//取得当前语句所在类的类名get_class_methods(obj);//取得obj的所有的方法名,并且组成一个数组get_class_vars(obj);//取得obj的所有的变亮名,并组成一个原创 2016-06-14 16:57:28 · 1030 阅读 · 0 评论 -
整理的一点东西(原创为www.phpvim.net)
nginx是个 Proxy,它只负责根据用户的配置文件,通过 fastcgi_param 指令将参数忠实地传递给 FastCGI Server,问题在于 FastCGI Server 如何处理 nginx 提供的参数?比如访问下面这个 URL:http://www.a.com/foo.jpg/a.php/b.php/c.php根据上面给出的配置,nginx原创 2016-04-16 00:56:29 · 382 阅读 · 0 评论 -
辛星浅析array_walk()和array_map()的联系和区别
对于这两个函数的具体使用方式,我们先来看一下吧,首先是array_walk,代码如下:<?php$arr = array(2,4,5,6,7);function xin(&$val,$key){ $val = $val*$val;}array_walk($arr, "xin");var_dump($arr); 其输出内容如下:array (size=5) 0 =原创 2016-04-09 01:59:54 · 651 阅读 · 2 评论 -
转载的一篇资讯
美国科技博客VentureBeat撰稿人John Koetsier近日撰文,称网络上最流行的编程语言可能即将推出移动版。文章指出,有75%的网站正在使用PHP,如Facebook、维基百科、雅虎和Photobucket等网站都是使用PHP编程语言来构建的,但这种语言看起来仍无法获得任何尊敬。不过,移动版PHP应将有助于这种编程语言继续实现增长。以下是这篇文章的全文:有一种开发者对网转载 2016-03-24 01:13:41 · 390 阅读 · 0 评论 -
php发送http请求的几种方法
有很多时候,我们还是需要用php去发送http请求的,它可以模拟浏览器的行为,通常它的应用场景有:1.后端测试自己的接口。2.后端请求别人的数据。 后端测试自己的接口,比如我们写了一个返回json数据的接口,我们可以让前端去测,但是前端不一定有空啊,或者前端界面还没做出来,由于界面不一定是现成的,因此测试起来也会有点麻烦。当然我们可以用谷歌浏览器的postman或者火狐的post原创 2015-08-06 12:05:56 · 2364 阅读 · 0 评论 -
辛星整理域名下的cookie问题
对于非顶级域名,比如二级域名或者三级域名,设置的cookie的domain只能为顶级域名或者二级域名或者三级域名,不能设置成其他的二级域名,否则cookie无法生成。 对于顶级域名,它的cookie的domain只能设置为顶级域名,不能设置为二级域名或者三级域名,否则cookie无法生成。比如www.xinxingjiaocheng.com能够设置cookie的domain为xin原创 2015-08-03 16:41:23 · 845 阅读 · 0 评论 -
跟着辛星用PHP的反射机制来实现插件
我的博文的前一篇讲解了PHP的反射机制是怎么回事,如果读者还不清楚反射机制,可以搜索下或者看我的博文,都是不错的选择,我们开始讲解一下怎么用PHP来实现插件机制。所谓插件机制,就是我们定义一个接口,即我们定义一个interface,然后第三方插件就去实现这个interface,然后我们拿到了这个插件之后,去调用这个插件的功能,我们可以不知道这些插件的类名等信息,我们接下来就用反射机制去实现这个功能原创 2014-07-24 03:36:20 · 1541 阅读 · 0 评论 -
跟着辛星解读PHP中json的使用
由于json是那么的重要,因此PHP自从5.2就增加了对JSON的支持,主要包括两个函数:json_encode和json_decode。众所周知,json是一种数据的存储格式,我的博文里写过json的,在我的Javascript教程中,不明白的读者可以去搜一下。 比如我们新建一个xin.json文件,存储数据如下:[{"name":"辛星","age":23},{"name":原创 2014-07-24 05:12:05 · 1296 阅读 · 3 评论 -
辛星解读为什么PHP需要模板
最近有个人问我:为什么PHP需要模板呢?整个网站的编写都是我一个人完成的,从前端到后端,都是这样,我一个人写网站是不是就不需要模板了呢?我当时还真给问住了,也没想好很合适的回答它的方式,于是就随便说了几点理由,现在仔细想想,大致有如下几点理由。 第一点就是PHP代码和HTML代码的分离,它并不是几个人做的事,就像前端的HTML和CSS通常也是一个人写,那为什么不直接在HTML里面把布原创 2014-07-23 22:36:11 · 1229 阅读 · 1 评论 -
跟着辛星深入探讨一下PHP的反射机制
早在之前学习Java的时候,清楚的记得是学完了多线程之后学习的反射,现在在PHP中当然也有反射机制,如果童鞋你还不明白,那就需要搞明白奥,毕竟反射的功能还是蛮强大的,学习它还是很具有现实意义的。 反射从简单去理解就是我们拿到一个类,得到这个类的一些信息,比如它有哪些方法、有哪些参数等等,当然我们还可以动态的去调用它的方法等等一些功能,它的用途就是可以自动加载插件、自动生成文档等等,从而达到扩展PH原创 2014-07-24 02:54:09 · 2669 阅读 · 3 评论 -
用PHP去实现数据库查询结果缓存
有些时候我们希望减少对数据库的查询来提高程序的性能,因为这些数据不是经常变更的,而是会在很长一段时间内都不会变化,因此,我们每连接一次数据库,都会把相应的结果用文件的形式保存起来。比如对于一个商城来说,我们的商品的数量可能会经常变,但是我们的商品类型以及商品的价格这些东西都会在很长的一段时间内不会变更,如果我们需要频繁的查询它们的时候,就可以使用数据库缓存技术。缓存的原因 第一点首原创 2014-07-22 07:54:23 · 2412 阅读 · 0 评论 -
辛星教你快速掌握PHP的正则表达式
首先说一下,这篇文章也是我在看了数个大牛的博客之后总结出来的,因此首先向这些大牛表示崇高的敬意和感谢,由于人数众多,而且来源也是特别分散,就不一一介绍了,见谅。************跨语言的主题**************1.就如同xml、json、cookie、session、get、post等话题一样,正则表达式是一个跨越了语言的话题,几乎绝大多数语言都支持正则表达式,可以说,只要这原创 2014-07-22 15:26:15 · 1244 阅读 · 0 评论 -
如果提升PHP程序的性能
一代大神Hoare曾经说过:”过早的优化是一切不幸的根源。“在我是个小菜鸟的时候,根本不知道这句话是否正确,但是当自己成为一个老鸟之后,就发现这句话是相当的犀利,说的恰到好处,也不愧它能够流传这么广泛。 要想优化PHP的性能,第一点要注意的就是缓存,有人说过如果PHP使用了缓存,它的性能会提高五百倍,可惜Zend公司在致力于卖自己的产品,因此一个公司把一门语言给坑了,先不说这个公司的问原创 2014-07-22 16:10:07 · 1324 阅读 · 1 评论 -
跟着辛星认识一下PHP的自动加载
作为一个框架,文件的加载机制是不能少的,那么我们应该怎么加载呢,这些PHP已经给我们想好了,所以我们只需要按照规则办事就可以了,PHP中有两个函数可以完成这个功能,第一个是__autoload,现在已经很少用了,取而代之的是功能更加强大的spl_autoload_register,它需要的版本是PHP5.2.1之后的版本,现在我们的主流版本都是支持的,因此可以放心使用。 在以前的PH原创 2014-07-22 13:37:25 · 1160 阅读 · 6 评论 -
辛星和您用更简单的方式去实现PHP中的验证码
说实话,提到验证码我想大家都不会陌生,确实,验证码还是挺常见的,现在搜索一下PHP的验证码类简直是海量的数据,那我们今天就来实现一个自己的验证码把,不过它比较简单,这也是我说的用更简单的方式去实现一个验证码。 总的来说分成两步,第一步就是先实现一个验证码,第二步就是通过这个验证码来进行验证,我们先看一下如何去实现这个验证码,当然这里需要用到gd库的知识,请看下面的代码示例:<?原创 2014-07-26 20:47:14 · 923 阅读 · 1 评论 -
辛星解读PHP中设置正确的时区
如果我们直接用date函数来格式化当前的shijian原创 2014-07-30 09:41:01 · 1023 阅读 · 1 评论 -
辛星浅析围绕数据操作的几个名词即model、dal、dao、orm和ar
第一,model 首先,model是mvc中的m,也就是模型。它指的是读取数据和改变数据的操作,它是与业务逻辑息息相关的操作。比如一个简单的功能"把学生添加到班组",就可以理解为一个数据处理过程,它向外暴露一个接口,外面的数据不需要知道这个接口具体是怎么实现的,也不需要知道它在各个数据库下的不同表现,我们只需要知道模型层暴露出来的接口即可。 第二,dal和dao原创 2015-08-27 14:36:09 · 2137 阅读 · 0 评论 -
辛星浅析php变量中的优先级问题
因为php是一个脚本语言,因此它的过度的灵活性,会导致它在解析的时候会产生歧义,一般来说我们是要避免这些歧义的,这里来小小的举一个例子吧,朋友们不妨看看下面的代码会输出什么: <?php$var = 'hello';$var_ = 'world';echo "$var_$var_";echo "";echo "{$var}_$var_";原创 2015-08-28 10:18:08 · 874 阅读 · 0 评论 -
辛星浅析跨域时的session共享问题
最近几天一直在忙一件事,弄的我现在满脑子都是"跨域"、“session"、”共享"等等的词汇,于是,也就简单总结一下自己的理解。 比如我们的这个项目,online是在线的二级域名,game是游戏的二级域名,我们需要在这两个域名下共享session,虽然这两个也需要跨域,但是由于这只是一个比较简单的跨域,我们可以在配置文件中设置一下让存储session的cookie的domain设原创 2015-08-13 18:41:58 · 1623 阅读 · 2 评论 -
辛星浅析PSR-0规范
通常来说,我们的PSR-0规范,通常来说可以划分为如下五个部分: (1)类名空间必须与绝对路径一致 (2)类名的首字母必须要大写 (3)除去入口文件外,其他的php文件必须只有一个类 (4)php文件必须能够实现自动加载,不能有include等的载入 (5)单一入口原创 2015-08-26 11:15:03 · 736 阅读 · 0 评论 -
辛星浅析字符模式匹配中的u模式修正符
注意这里的模式修正符是小写的u,不是大写的U。下面是官方的一段描述: 此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。原创 2015-07-01 11:04:52 · 672 阅读 · 0 评论 -
辛星浅析php正则匹配中的utf字符串
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-07-01 11:00:58 · 859 阅读 · 1 评论 -
辛星浅析一次ajax的实现过程
说到ajax,那绝对是一个老生常谈的话题,近些年ajax技术的使用颇为盛行。下面我们就以jQuery为例来从一个真实的项目中看一下ajax的实例。 首先是前端页面,这个页面我们使用的是bootstrap和自己的若干技术,最后我们有一个按钮,它的源代码如下:$deal .= '删除';相信有js基础的朋友们读懂这个代码不是问题,这里需要说明几点:1.它使用了bootstrap,原创 2015-06-09 13:51:35 · 836 阅读 · 0 评论 -
辛星解析动态查看php中的变量、常量、函数、类、文件等信息
当我们php工作量变大之后,经常需要判断我们是否定义过某个变量,我们是否定义过某个常量,或者说我们是否定义过某个函数等等,我们重复定义常量会导致错误,我们重复定义变量会导致前面的值被覆盖,因此,还是很有必要去了解这些函数的。 比如说我在我的starphp框架里写一个文件,代码如下:<?phpecho "当前用户定义的常量";$user_constants = get_define原创 2014-08-11 16:45:45 · 1617 阅读 · 0 评论 -
mac os x下对于php的一些配置
Mac OS X 10.9已经自带有php-fpm,直接运行,有报错找不到配置文件。$ php-fpm ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2) ERROR: failed to load configuration file '原创 2016-08-30 08:10:17 · 620 阅读 · 0 评论