May152024
May142024
May142024
php扩展开发步骤示例
以下内容以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。示例中,我们将实现如下功能:
function say() {
return "hello www.phpernote.com";
}
echo say();
输出内容:
hello www.phpernote.com
在扩展中实现一个say方法,调用say方法后,输出 hello www.phpernote.com。
第一步:生成代码
PHP为我们提供了生成基本代码的工具 ext_skel。这个工具在PHP源代码的./ext目录下。
...阅读全文
May132024
windows 10 环境 docker 下 PhpStorm 2022.1.4 配置xdebug
windows 10 系统,使用 docker 搭建的 lnmp 环境,php 版本为 8.2,本篇文章记录一下在 PhpStorm 2022.1.4(中文版) 上配置 xdebug 的过程。
1. 配置客户端 xdebug 装备
如果程序是网页形式的,则需要在浏览器上安装 xdebug 扩展,具体安装 xdebug 扩展的方式可网上搜索。
本次需要调试的程序是接口形式的,通过 postman 模拟 http 请求的形式,只需要在 Header 里加上:
Cookie XDE...阅读全文
May132024
PHP-FPM 设置多pool、配置文件重写,php-fpm配置work进程数,php-fpm常用配置说明
php-fpm 配置文件常见配置项说明:
# 全局配置
[global]
# PID、可以不填
pid = /usr/local/php/var/run/php-fpm.pid
# 错误日志路径、可以不填
error_log = /usr/local/php/var/log/php-fpm.log
# 下面是虚拟主机配置,可写多个
# pool命名:www
[www7.4]
# 监听socket方式
# 可以写成listen = 127.0.0.1:9000
listen = /tmp/php-fcgi.sock
# 开启php-fpm的执行用户
user = php-fpm
# ...阅读全文
May112024
php实现 master-worker 守护多进程模式的实例代码
php实现 master-worker 守护多进程模式的实例代码。
<?php
/**
* Class Worker
* php实现 master-worker 守护多进程模式的实例代码
* kill 主进程,自动杀掉子进程
* 子进程意外终止将会被守护进程重新创建
* @link https://www.phpernote.com/
* @author www.phpernote.com
* @to do 判断进程是否已经启动,不允许重复启动
*/
class Worker {
private static $process_...阅读全文
May092024
一个树数组,使用php递归清除儿子数组为空的元素
一个树数组,有id,parent_id字段,parent_id字段表示父子关系,使用php写一个函数清除儿子数组为空的元素。
要清除树形数组中儿子数组为空的元素,我们可以使用递归的方法来遍历整个数组,并检查每个元素的子数组是否为空。如果为空,我们就从数组中移除它。以下是一个使用PHP编写的示例函数:
function removeEmptyChildren( & $tree, $childrenName = 'children') {
foreach($...阅读全文
May092024
Linux Shell脚本实现根据进程名杀死进程
Linux shell脚本实现根据进程名杀死进程的方法,免去每次都要先ps -ef|grep列出所有的进程,然后kill进程id的麻烦步骤。
提醒:以下仅供参考,实际上linux已经有相关的命令了,即 killall,下面的内容是还不知道这个命令的时候鼓捣的。
Shell脚本源码如下:
#!/bin/sh
#根据进程名杀死进程
if [ $# -lt 1 ]
then
echo "缺少参数:procedure_name"
exit 1
fi
PROCESS=`ps -ef|grep $...阅读全文
May082024
PHP将base64编码字符串转换成图片并保存到本地
我们在开发过程中,很多通过APP或者web前端会通过接口给我们以base64编码字符串的方式上传图片,这个时候我们就需要将这些base64编码字符串转化成图片,并且保存到本地,我们来讲解一下。
//调用方法:
public function uploads(){
$content = $this->getContent();
$this->base64_image_content($content,'./uploads');
}
base64编码字符串转换成图片并保存到本地:
public f...阅读全文
May062024
linux(centos)安装php zip扩展
linux(centos)下安装 php zip 扩展,步骤如下:
下载并安装
#下载 zip 扩展
wget https://pecl.php.net/get/zip-1.22.3.tgz
#解压
tar -zxvf zip-1.22.3
#编译并安装
/usr/local/php8.2.14/bin/phpize
./configure --with-php-config=/usr/local/php8.2.14/bin/php-config
make
make install
安装完后会出现:
Installing shared extensions: /usr/local/php8.2.14/lib/php/extensi...阅读全文