php
文章平均质量分 58
zhangge3663
这个作者很懒,什么都没留下…
展开
-
mysql_connect报告“No such file or directory“错误的解决方法
在Linux系统下php使用mysql_connect()连接mysql数据库,打印错误信息是"No such file or directory"1、查看phpinfo信息找到mysql.default_scoket、mysqli.default_socket、pdo_mysql.default_socket对应的路径2、用命令打开mysql输入status查看UNIX socket的值3、找到php.ini配置文件把这三项的值配置成从第二步获取的值。重启。搞定。...转载 2021-04-02 10:52:26 · 1675 阅读 · 0 评论 -
【php7扩展开发六】zval的操作
生成各类型zvalPHP7将变量的引用计数转移到了具体的value上,所以zval更多的是作为统一的传输格式,很多情况下只是临时性使用,比如函数调用时的传参,最终需要的数据是zval携带的zend_value,函数从zval取得zend_value后就不再关心zval了,这种就可以直接在栈上分配zval。分配完zval后需要将其设置为我们需要的类型以及设置其zend_value,PHP中定义的ZVAL_XXX()系列宏就是用来干这个的,这些宏第一个参数z均为要设置的zval的指针,后面为要设置的zend_转载 2021-03-24 13:24:23 · 439 阅读 · 0 评论 -
【php7扩展开发五】函数调用
实际应用中,扩展可能需要调用用户自定义的函数或者其他扩展定义的内部函数,PHP提供的函数调用API的使用:ZEND_API int call_user_function(HashTable *function_table, zval *object,zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[]);各参数的含义:__function_table:__ 函数符号表,普通函数是EG(funct转载 2021-03-24 13:21:33 · 235 阅读 · 0 评论 -
【php7扩展开发四】函数的参数 ,引用传参 ,返回值
函数参数解析之前我们定义的函数没有接收任何参数,那么扩展定义的内部函数如何读取参数呢?用户自定义函数在编译时会为每个参数创建一个zend_arg_info结构,这个结构用来记录参数的名称、是否引用传参、是否为可变参数等,在存储上函数参数与局部变量相同,都分配在zend_execute_data上,且最先分配的就是函数参数,调用函数时首先会进行参数传递,按参数次序依次将参数的value从调用空间传递到被调函数的zend_execute_data,函数内部像访问普通局部变量一样通过存储位置访问参数,这是用户自转载 2021-03-24 13:18:32 · 395 阅读 · 0 评论 -
【php7扩展开发三】ini配置
php.ini配置php.ini是PHP主要的配置文件,解析时PHP将在这些地方依次查找该文件:当前工作目录、环境变量PHPRC指定目录、编译时指定的路径,在命令行模式下,php.ini的查找路径可以用-c 参数替代。该文件的语法非常简单: 配置标识符 = 值 。空白字符和用分号';'开始的行被忽略,[xxx]行也被忽略;配置标识符大写敏感,通常会用'.'区分不同的节;值可以是数字、字符串、PHP常量、位运算表达式。关于php.ini的解析过程不作介绍,只从应用的角度介绍如何在一个扩展中获取一个配转载 2021-03-24 13:11:01 · 209 阅读 · 0 评论 -
【php7扩展开发一】注册一个内部函数hello world
通过扩展可以将C语言实现的函数提供给PHP脚本使用,如同大量PHP内置函数一样,这些函数统称为内部函数(internal function),与PHP脚本中定义的用户函数不同,它们无需精力用户函数的编译过程,同时执行时也不像用户函数那样每一个指令都调用一次C语言编写的handler函数,因此,内部函数的执行效率更高。除了性能上的优势,内部函数还可以拥有更高的控制权限,可发挥的作用也更大,能够完成很多用户函数无法实现的功能。函数通过zend_function来表示,这是一个联合体,用户函数使用zend_f转载 2021-03-24 13:06:56 · 290 阅读 · 0 评论 -
【php7扩展开发二】全局变量
使用C语言开发程序时经常会使用全局变量进行数据存储,这就涉及前面已经介绍过的一个问题:线程安全,PHP设计了TSRM(即:线程安全资源管理器)用于解决这个问题,内核中频繁使用到的EG、CG等都是根据是否开启ZTS封装的宏,同样的,在扩展中也需要必须按照TSRM的规范定义全局变量,除非你的扩展不支持多线程的环境。PHP为扩展的全局变量提供了一种存储方式:每个扩展将自己所有的全局变量统一定义在一个结构体中,然后将这个结构体注册到TSRM中,这样扩展就可以像使用EG、CG那样访问这个结构体。这个结构体的定转载 2021-03-23 16:55:23 · 205 阅读 · 0 评论 -
【php内核与扩展开发系列】PHP生命周期---启动、终止与模式
启动与终止PHP程序的启动可以看做有两个概念上的启动,终止也有两个概念上的终止。其中一个是PHP作为Apache(拿它举例,板砖勿扔)的一个模块的启动与终止,这次启动PHP会初始化一些必要数据,比如与宿主Apache有关的,并且这些数据是常驻内存的,终止与之相对。还有一个概念上的启动就是当Apache分配一个页面请求过来的时候,PHP会有一次启动与终止,这也是我们最常讨论的一种。现在我们主要来看一个PHP扩展的生命旅程是怎样走完这四个过程的。在最初初始化的时候,就是PHP随着Apache的启动而转载 2021-03-23 10:10:04 · 202 阅读 · 0 评论 -
php-fpm启动后没有监听端口9000
netstat -an未发现监听9000端口。查看/var/log/php5-fpm.log一切正常。随后查看centos/usr/local/php/etc/php-fpm.con(ubuntu:/etc/php5/fpm/pool.d/www.conf,)发现listen=/var/run/php5-fpm.sock。默认安装php5-fpm无监听9000端口,nginx无法链接php5-fpm修正。修改nginx下的sites配置location ~ \.php$ {..转载 2021-02-05 13:42:11 · 1096 阅读 · 0 评论 -
滑动验证前端代码实现
支付宝的滑块验证效果,又刷新了大家对于验证码的认知,这种滑块效果,改善了用户体验。除了它外观和用户体验上的优秀外,其实它的安全性也并未降低,后端对用户行为的分析依然保证了安全校验。下面我们在此介绍一下,滑块效果的前端实现。涵盖的内容主要: 滑块前端样式(html排版),滑块的闪光移动效果(CSS3 动画),以及滑块滑动脚本的编写(javascript 移动,点击,拖拽事件的编写。)备注: 本实例基于 网上Demo 增添 CSS效果 和 修复 JS BUG 等问题。大家直接粘贴代码到对应的文件,便..转载 2020-10-30 17:06:59 · 743 阅读 · 0 评论 -
php生成图片验证码-附五种验证码
这篇文章主要给大家讲解php生成图片验证码,包括数字验证码、数字和字母验证码、中文验证码、仿google验证码、算术验证码,实现此功能主要通过GD库,生成一张带有验证码的图片,并把验证码存在session中,本文讲解的比较全面,需要的朋友可以参考下以前输出验证码的时候用过一个方法,在前台用JS生成验证码字符串,再传递到后台用PHP输出验证码图像。这样在验证时就不需要使用$_SESSION传递验证码的值,直接用JS比较生成的字符串和输入的字符串是否相等即可。本文以实例演示5种验证码,并介绍生成验证码的转载 2020-10-30 13:32:38 · 3378 阅读 · 1 评论 -
cookie中的PHPSESSID
如果PHP脚本中有:session_start();则说明使用了SESSIONSESSION是一种机制,可以在服务器端跨文件暂时保存数据或传递数据,常用于购物车等方面。SESSION只在用户关闭浏览器之前有效。PHP是怎么识别不同的SESSION的呢?每一次SESSION会话都有一个SESSION ID,用来识别不同的会话,保存在浏览器Cookie之中,也就是这个名为PHPSESSID的Cookie(当然,这个名称是可以更改的)。浏览器将Cookie(包括PHPSESSID)转载 2020-08-14 13:54:59 · 2243 阅读 · 0 评论 -
php禁用cookie后session设置方法分析
本文实例讲述了php禁用cookie后session设置方法。分享给大家供大家参考,具体如下:我们都知道当在session会话有基于cookie和基于url两种传递SESSIONID的方法。为了实现客户端禁止cookie发送的情况下也不影响客户登录网站,可以设置php.ini中session.use_trans_sid=1,表示当客户端浏览器禁止cookie的时候,页面上的链接会基于url传递SESSIONID。但是很多人仅仅设置了这一个选项并没有达到效果,本人也遇到此问题,后来一番研究发现:php转载 2020-08-14 13:50:31 · 249 阅读 · 0 评论 -
PHP利用qq邮箱发邮件
1.下载代码源码https://github.com/PHPMailer/PHPMailer2.在代码中放入composer.phar 安装phpmailer/phpmailer3.到qq邮箱配置 开启SMTP服务4.记住授权码4.下载好phpmailer 后只需要几个重要的文件即可,其余的都可以删除class.phpmailer.phpclass.po...转载 2020-02-14 13:52:33 · 1137 阅读 · 0 评论
分享