PHP中序列化数据使用的两个方法: serialize() 和 unserialize() 。 对一个自定义对象序列化时,有4个魔术方法和预定义接口Serializable,共3个层级。 魔术方法 _sleep() 和 _wakeup()public function sleep(): array; public function wakeup(); serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用... 阅读全文>>
PHP手册:https://www.php.net/manual/zh/appendices.php 这里只介绍常用或相对重要的特性。 PHP7.0新特性标量类型声明 现在可以使用下列类型参数:字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)。 扩充了PHP5中引入的其他类型:类名(object),接口(interface),数组(array)和回调类型(callable)。 可使用多变长参数列表: function sumOfInts(int .... 阅读全文>>
使用 cURL 访问 https 协议,是需要使用ca证书进行ssl验证的,之前的做法一直是直接关闭ssl验证。虽然这个做法是可行的,但是不够安全。 现在来学习一下如何使用ca证书验证ssl: 首先下ca证书: 如果你不需要特殊的证书包,可以使用Mozilla提供的通用CA包,你可以在 这里 下载(由cURL的维护者提供)。 一旦磁盘有了CA包,你可以设置PHP ini配置文件,指定该文件的路径到变量 openssl.cafile中。 你可以在 cURL 网站 发现更多关于SSL证书的细节。 ... 阅读全文>>
在 Laravel 中使用 npm 安装依赖包时会提示 fsevents 包安装出错,这个问题会导致之后执行 npm run dev 之类的命令打包生成前端文件会出错。 问题原因问题是在 Laravel 的 npm 的 package.json 文件依赖中有 cross-env 包,cross-env递归依赖中含有fsevents包,而fsevents包不适用于windows。在windows下安装会出错。从而导致cross-env执行也会出错。 解决办法npm 安装依赖时忽略可选包(加上--n... 阅读全文>>
composer中可以配置四种自动加载规则,你可能会熟知其中的一两种,但可能不知道有四种吧?不知道的一起来随我学习吧。 psr-4 自动加载psr-4是目前最新的、最受欢迎的、广泛在各种composer包、PHP框架中使用的自动加载方式。 我这里不说明psr-4的加载规则了,因为官方文档比我说明的更规范、更清楚,如果不知道psr-4可以查看文章末尾的参考文章。 这里只说明怎么在composer.json中配置psr-4自动加载规则: { "autoload": { "ps... 阅读全文>>
之前在Windows下使用PHP开发时都是使用的集成环境比如phpstudy、wxampp,但是身为一个PHPer怎么能不会自己搭建PHP环境呢。如果不会的话,那么就一起来学习下。 安装 Nginx下载 Nginx 软件包下载地址:http://nginx.org/en/download.html 自己选一个版本,目前最新稳定版为1.16,我下载这个。注意选择windows版本的(nginx/Windows-1.16.0)。 我们下载的是一个免安装的压缩包,直接解压到合适的目录下即可,我这解压后... 阅读全文>>
PDO介绍PDO是 PHP Data Oject 的缩写,即PHP数据对象。提供了访问各种数据库的一致接口,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 PDO还提供了预处理功能来防止SQL注入,另外也可以使用事务功能。 安装PDO扩展PHP在安装的时候,已经默认安装了PDO扩展,但要使用PDO操作具体的数据库,需要安装相应的数据库驱动扩展pdo-dbname。安装扩展的方法这里不做说明。 要查看PDO支持哪些数据库驱动,点击这里:PHP: PDO 驱动 - Manual 使... 阅读全文>>
安装步骤去PECL载dll文件:PECL :: Package :: redis,注意要选择和你电脑上的php版本一致的。如果不知道可以用php -v查看。 下载好之后将压缩包里面的php_redis.dll放到php安装目录下的ext目录。 修改php.ini文件,加上: [Redis] extension=php_redis.dll 需要重启 php-fpm/php-cgi。 查看redis扩展然后可以在php -m和phpinfo()里面查看是否加载了redis扩展。 cmd下执行php ... 阅读全文>>
在PHP中,memcache扩展和memcached扩展是两个不同的扩展,注意区分一下:php的memcache和memcached扩展区别。 使用pecl安装安装 libmemcached: yum -y install libmemcached-devel pecl编译安装: pecl install memcached 修改 php.ini 文件,添加: [memcached] extension=memcached.so 下载源码安装# 下载 cd /usr/local/src pe... 阅读全文>>
原文:什么是phpize及其用法 - weixin_38674371的博客 - CSDN博客 应用场景:在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。 使用方法:extention为要挂载的扩展包 wget extension_name.tar.gz 下载相应的扩展包并解压。 cd extension_name/ 切换到扩展exten... 阅读全文>>
Windows上PHP集成的软件开发环境如wampp、phpstudy,对于一般的扩展都有,memcache扩展需要自己安装,这里总结一下。 windows下如何安装扩展?windows安装扩展是比较容易的,不需要自己去编译,一般的步骤为: 下载你要安装的php扩展库的dll文件,并放在php安装目录下的ext目录修改php.ini配置文件,加上 extension=xxx.dll 然后你可以在phpinfo()或者使用php -m查看是否已经加载。 安装memcache服务要在php使用me... 阅读全文>>
在Linux下,Nginx使用sock文件连接PHP-FPM比普通转发方式(转发到9000端口)要更快、更高效,这里记录一下配置方法。 修改PHP-FPM配置文件打开PHP-FPM配置文件,一般是 /usr/local/php/etc/php-fpm.conf 或者 /usr/local/php/etc/php-fpm.d/www.conf,如果不知道文件位置可以使用下面的命令: ps -aux | grep php-fpm 文件位置如下: 找到下面的这两行: listen = 127.0.0... 阅读全文>>
学习PHP时遇到一些慨念,开始的时候有些分不清,这几天又好好查了一下资料,这里总结一下。 CLICLI 为 Command Line Interface 的缩写,即命令行接口。CLI是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。 比如你在windows下使用的cmd,在Linux下使用的shell,就是操作系统提供的CLI。 CGICGI 为 Common Gateway Interf... 阅读全文>>
因为一般来说,软件的漏洞都与版本有关,隐藏版本号是为了防止恶意用户利用软件漏洞进行攻击。 隐藏 Nginx 版本号修改 Nginx 配置文件 nginx.conf,找到http块,在里面添加一行: server_tokens off; 重启 Nginx 后生效。 这里只是隐藏了Nginx 版本号,还可以更进一步,隐藏 Nginx 服务器标志。具体做法可以查看文章末尾的参考文章。 隐藏 PHP 版本号修改 PHP 配置文件 php.ini,找到: expose_php = On 修改为 exp... 阅读全文>>
开启 opcache能有效的提升PHP执行速度,建议在生产环境中开启。 开启 opcache的方法修改 php.ini在 php.ini 找到 opcache 段,修改下面的几行,去掉前面的注释符; [opcache] ; opcache 开关 opcache.enable=1 ; php-cli 模式 opcache 开关 opcache.enable_cli=0 ; opcache 共享内存大小,单位为M opcache.memory_consumption=128 ; 暂存池中字符... 阅读全文>>