
php
kgduu
这个作者很懒,什么都没留下…
展开
-
zend studio输出中文乱码的问题
zend studio11开发php项目中文乱码怎么办?很多朋友在使用zend studio开发工具开发php时,都会发现在zend studio里打出的字都是乱码,就是不知道怎么解决中文乱码。今天,我就给大家说说,其实,我们zend studio工具的编码设置的是GBK,而我们开发用的是utf-8,所以导致我们用zend studio时出现utf-8乱码问题。不用怕,来看下zend stud原创 2016-03-08 09:53:41 · 3285 阅读 · 0 评论 -
PHP的DES加解密函数 与JAVA兼容
PHP可以使用mcrypt_encrypt进行DES加密与解密,但实际上操作,你会发现它与JAVA的DES加密出来的字符串,有些不同。基本上是前半段一样,后半段不一样。找到PHP官方网站上对这个函数的文档,有人回复了,并给出了代码。经测,这样加密解密就跟JAVA中的兼容了。If you want to be interoperable with other PKCS #7 padding i转载 2016-11-11 10:20:37 · 4631 阅读 · 0 评论 -
php中的学习笔记
1、数组中有unicode编码时,用json_encode的选项JSON_UNESCAPTED_UNICODE来转化为utf8原创 2016-06-21 10:58:15 · 439 阅读 · 0 评论 -
PHP内核之PHP_FUNCTION宏定义
平常我们查看php源代码的时候,经常会看到有以下代码的存在:那么,这其中的PHP_FUNCTION到底是什么呢?现在开始,来看看他到底是什么鬼东西。大写的,猜测一下,应该是宏定义,搜索,果然在源码的php-5.6.22-src\main\php.h文件里面,大概在347行接着搜索ZEND_FUNCTION这个宏定义,在php-5.6.22转载 2016-12-15 22:34:52 · 1126 阅读 · 1 评论 -
php Session存储到Redis的方法
当然要写先安装php的扩展,可参考这篇文章:Redis及PHP扩展安装修改php.ini的设置复制代码代码如下:session.save_handler = redissession.save_path = “tcp://127.0.0.1:6379″修改后重启php-fpm或nginx,phpinfo()session redis如果不转载 2016-12-15 15:13:40 · 1024 阅读 · 0 评论 -
phpredis5.6在win10下的安装
1、在php文件中使用phpinfo()来确定php版本PHP Version 5.6.19CompilerMSVC11 (Visual C++ 2012)Architecturex862、下载redis扩展dll库下载地址http://windows.php.net/downloads/pecl/snaps/原创 2016-12-20 23:02:47 · 1466 阅读 · 0 评论 -
Kohana中控制器继承自Controller_Template的问题
当控制器继承自Controller_Template时,template默认时template,如果auto_render为true时,$this->template = View::factory($this->template);需要重写before方法,或者设置auto_render的值,否则会报在Views下找不到template的视图文件原创 2017-02-06 08:44:32 · 549 阅读 · 0 评论 -
php中的mysql模块
在php_mysqlnd中的PHP_MINIT_FUNCTION中mysqlnd库的初始化static PHP_MINIT_FUNCTION(mysqlnd){ REGISTER_INI_ENTRIES(); mysqlnd_library_init(); return SUCCESS;}主要作con和conn_data的方法函数的初始化,注册一些回调函数原创 2017-03-01 16:09:19 · 773 阅读 · 0 评论 -
php中的__call调用
php中的__call调用当类的方法名不存在时时的处理__call() 方法用于监视错误的方法调用。__call()(Method overloading)为了避免当调用的方法不存在时产生错误,可以使用 __call() 方法来避免。该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。语法:function __call(string $转载 2017-01-23 10:50:36 · 771 阅读 · 0 评论 -
(一)swoole服务启动流程
服务启动依赖于进程,在进程中用swoole_server来创建,源码中的别名函数为swoole_server_create,默认的sock_type是tcp,服务模式serv_mode为进程模式,分配swServer内存并初始化,同时解析服务主机ip,端口号,服务模式及sock_type,将服务器监听端口信息加入listen_list列表中。用swoole_server->start来启动(s原创 2017-02-13 20:16:40 · 7596 阅读 · 0 评论 -
PHP-Zend引擎剖析之词法分析(一)
前言闲来研究一下PHP底层的Zend引擎源码,Zend引擎是PHP脚本的虚拟机。在PHP上层有SAPI接口,负责对各个接入层的抽象,例如PHP在Apache模块里边的实现,Fast-CGI的实现,命令行的实现。在PHP底层便是Zend虚拟机,Zend虚拟机负责解析PHP语法的文件,上层可以在虚拟机中注册函数/变量提供给虚拟机调用,例如从Apache分发过来的HTTP请求经过PHP的转载 2017-03-07 12:58:25 · 680 阅读 · 0 评论 -
PHP-Zend引擎剖析之Hello World(二)
前言这一次,我围绕Hello World来展开Zend虚拟机的执行过程。Hello World的PHP版本: echo 'Hello World';?>前一篇文章聊到的词法分析阶段就会把上边的脚本分析出一个Token序列:我们得到一个Token序列:T_OPEN_TAG, T_ECHO, T_CONSTANT_ENCAPSED_STRING, '转载 2017-03-07 13:06:01 · 414 阅读 · 0 评论 -
PHPMailer配置QQ邮箱163邮箱和谷歌邮箱发送邮件
开启网易和QQ邮箱的SMTP服务由于网易和QQ邮箱的SMTP服务默认是不开启的,谷歌的是开启的,所以小伙伴们要是选择了网易和QQ邮箱的话是需要登录到邮箱去开启的。网易邮箱登录到网易邮箱后如下图所示进入到POP3/SMTP/IMAP设置页面没有开启服务的小伙伴们请自己开启,开启过程中会验证一些手机号之类的,完成后可以看到,左侧栏有一个客户端授权转载 2017-03-29 14:14:05 · 5265 阅读 · 0 评论 -
PHP语法分析器:RE2C && BISON 总结
在这之前,我曾经尝试过一个项目,就是将我们的PHP代码自动生成so扩展,编译到PHP中,我叫它 phptoc。但是由于各种原因,暂停了此项目。写这篇文章一是因为这方面资料太少,二是把自己的收获总结下来,以便以后参考,如果能明白PHP语法分析那对PHP源码的研究会更上一层楼地 ^.^…我尽可能写的通俗易懂些。这个项目思路源于facebook的开源项目转载 2016-08-25 20:02:19 · 4133 阅读 · 1 评论 -
protobuf3在php中的使用
1、从https://github.com/google/protobuf/releases中下载protoc可执行文件2、参考https://github.com/google/protobuf/tree/master/php安装c的扩展3、定义协议文件以User.proto为例syntax="proto3";message UserInfo{ int32 id = 1;原创 2017-07-15 21:25:35 · 5335 阅读 · 4 评论 -
phpStorm 2016.1 最新版激活方法
新版激活方法:1.在线激活最新http://www.0-php.com:1017(可用,更新于20170621)http://idea.singee77.com/ http://idea.java.sxhttp://intellij.mandroid.cn/http://idea.imsxm.com/http://idea.iteblog.com转载 2016-04-28 00:55:40 · 27032 阅读 · 3 评论 -
Symmetric Pairs(连接、分组,聚合)
有一张表functions(x,y),有 记录(x1,y1),(x2,y2)如果x1=y2并且x2=y1认为存在对称点找出表中的对称点,要求按x升序思路:在作连接操作时,分组后,需要统计个数 ,1、对于x与y相等时,个数要大于12、x与y不等时,个数等于1sql为select f1.x, f1.y from functions as f1 inner join functions as f2 on...原创 2018-05-11 22:35:45 · 442 阅读 · 0 评论 -
php中需要注意的问题
1、feof判断文件结束,但是在返回true之前会读取一个空记录,所以在用feof来判断文件是否读完时,需要判断读取的是否成功,如判断fgetc()或者 fgets()是否返回false原创 2016-04-17 10:24:46 · 893 阅读 · 0 评论 -
分享九款构建响应式网站的最佳PHP框架
目前,网上有大量的框架供大家选择,本文作者分享了9款各方面都兼具优势的PHP框架,主要用来构建响应式网站,开发人员可以根据自己的需求来选择下面的某一个框架。1.Symfony 2Symfony是一个开源的PHP框架,它在速度和灵活性方面都兼具优势。它提供了一套解决特定工程问题的概念和工具,帮助广大开发者减少重复性工作。抽象化意味着能用更简洁的东西表达复杂的概念、流程等。2.转载 2016-08-30 10:05:33 · 1731 阅读 · 0 评论 -
PHP isset 函数作用
isset函数是检测变量是否设置。 格式:bool isset ( mixed var [, mixed var [, ...]] )返回值:若变量不存在则返回 FALSE 若变量存在且其值为NULL,也返回 FALSE 若变量存在且值不为NULL,则返回 TURE 同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE如果已经使用 un转载 2016-03-22 15:11:29 · 724 阅读 · 0 评论 -
PHP explode() 函数
定义和用法explode() 函数把字符串打散为数组。注释:"separator" 参数不能是空字符串。注释:该函数是二进制安全的。语法explode(separator,string,limit)参数描述separator必需。规定在哪里分割字符串。string必需。要分割的字转载 2016-03-22 15:49:25 · 1179 阅读 · 0 评论 -
php判断键值在数组中是否存在
用array_key_exists(key, array)来判断原创 2016-03-22 16:28:55 · 4208 阅读 · 0 评论 -
php中将数据加入到文件中
用file_put_contents,语法为语法file_put_contents(file,data,mode,context)参数描述file必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。data可选。规定要写入文件的数据。可以是字符串、数组或数据流。mode原创 2016-03-22 16:31:40 · 503 阅读 · 0 评论 -
PHP内核介绍及扩展开发指南—高级主题
1.1 使用数组曾讲到,PHP数组本质上就是个HashTable,因此访问数组就是对HashTable进行操作,Zend为我们提供的一组数组函数也只是对HashTable操作进行了简单包装而已。来看创建数组,由于数组也是存在于zval里的,因此要先用MAKE_STD_ZVAL()宏创建一个zval,之后调用如下宏将其转化为一个空数组:array_init(zva转载 2016-04-05 11:40:09 · 443 阅读 · 0 评论 -
PHP内核介绍及扩展开发指南—基础知识
一、 基础知识本章简要介绍一些Zend引擎的内部机制,这些知识和Extensions密切相关,同时也可以帮助我们写出更加高效的PHP代码。1.1 PHP变量的存储1.1.1 zval结构Zend使用zval结构来存储PHP变量的值,该结构如下所示:01typedef union _zvalue_value {转载 2016-04-05 11:45:45 · 660 阅读 · 0 评论 -
PHP内核介绍及扩展开发指南—Extensions 的编写
Extensions 的编写理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。1.1Hello World这是摘自《PHP手册》的示例程序:01/* include standard header */转载 2016-04-05 11:52:54 · 565 阅读 · 0 评论 -
PHP中的资源类型
9.2 PHP中的资源类型通常情况下,像{资源}这类复合类型的数据都会占用大量的硬件资源,比如内存、CPU以及网络带宽。对于使用频率超级高的数据库链接,我们可以获取一个长链接,使其不会在脚本结束后自动销毁,一旦创建便可以在各个请求中直接使用,从而减少每次创建它的消耗。Mysql的长链接在PHP内核中其实就是一种持久{资源}。 Memory Allocation 前面的章节里我们接触了ema转载 2016-04-05 18:35:00 · 1507 阅读 · 0 评论 -
php pack、unpack、ord 函数使用方法(二进制流接口应用实例)
park,unpark,ord这3个函数,在我们工作中,用到它们的估计不多。 我在最近一个工作中,因为通讯需要用到二进制流,然后接口用php接收。当时在处理时候,查阅不少资料。因为它们使用确实比较少,也很少朋友工作中会用到它们。 在工作中,我也逐渐了解到park,unpark,ord对于二进制字节处理的强大。 下面我逐一介绍它们。 park,unpark,ord函数使用介绍 p转载 2016-04-22 18:43:42 · 3288 阅读 · 0 评论 -
phpstorm 控制台运行
1、先打开菜单Run->Edit Configurations选项2、然后在打开的窗口中点击左上角的+号3、在打开的菜单中选择PHP Script4、在打开的界面中找到Configuration->File5、选择你要在控制台运行的文件6、填入工作目录的路径(可填可不填),完成配置后点击右下角的OK7、回到主界面,点击菜单Run->Run...转载 2016-04-25 22:57:19 · 5324 阅读 · 1 评论 -
kohana中的路由规则
Kohana的路由规则是非常强大的。首先必须确认的是路由的匹配原则是有顺序,当一条路由规则匹配成功时,就停止匹配,也就是说在其后面定义的路由规则将不再被执行,因此最后的一条路由规则几乎可以匹配所有的路由规则,它常常类似于下面这样:在bootstrap.php文件中:[php] view plain copyRoute::set('de转载 2016-04-18 17:57:40 · 1409 阅读 · 0 评论 -
kohana分析之主程序加载流程
本文是要切入kohana的内部,分析其启动过程:1.index.php单一入口主文件,基本上是设置模块路径,全局变量等.如错误信息,系统模块路径,网站目录等.其他工作转给 require SYSPATH.'core/Bootstrap'.EXT;完成。值得提的是,如果我们想捕获整个程序的异常,那可以把他改成:try{ require SYSPATH.'core/Bo转载 2016-04-18 20:51:26 · 1032 阅读 · 0 评论 -
SPL spl_autoload_register 初体验 (转)
网上关于SPL spl_autoload_register的用法的例子有很多很多,自己也查看了很多,但感觉介绍得并不太详细,使自己真正能明白其中的原理苦闷了好一会儿。现将自己的理解记录下来。 关于 Standard PHP Library (SPL) 的 autoload 的方法,这些都是 PHP 5.1.2 之后才加上的方法。为了方便,这里做了一些设定。假设你有类文件,放在转载 2016-04-20 13:00:03 · 629 阅读 · 0 评论 -
log4php的使用
下载地址:http://logging.apache.org/log4php/原创 2016-06-03 21:56:38 · 1923 阅读 · 0 评论 -
phpstorm中的快捷键
ctrl+shift+n :打开工程中的文件原创 2016-06-02 20:01:43 · 464 阅读 · 0 评论 -
Luhn算法验证信用卡的合法性
算法描述为:1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是是两位数,将结果减去9(可以理解为各位数相加)2、把把有数字相加得到总和3、看是否能被10整除,如果能,说明是合法的转载 2016-07-18 17:58:13 · 1983 阅读 · 0 评论 -
15 Days of Learning SQL(子查询)
https://www.hackerrank.com/challenges/15-days-of-learning-sql/problemsql:select submission_date ,( SELECT COUNT(distinct hacker_id) FROM Submissions s2 WHERE s2.submission_date = s1.submissio...原创 2018-05-13 19:56:10 · 764 阅读 · 0 评论