php
文章平均质量分 67
lucas1018
路漫漫其修远兮,吾将上下而求索
展开
-
laravel-admin搭建后台管理系统
最近有个搭建后台管理系统的需求,这里选用的是在laravel框架下的laravel-admin扩展,安装步骤如下:#安装laravel,项目名称tempcomposer create-project --prefer-dist laravel/laravel temp "5.5.*"执行该命令后需要一些时间,之后会在当前目录下生产temp文件夹,进入该目录后会看到一个.env文件,打开并编辑数据库配置:DB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=t原创 2020-05-23 17:33:57 · 2532 阅读 · 0 评论 -
php实现图片上传下载
最近碰到图片上传下载的需求,汇总下:1.上传图片如果 php 版本为 5.4 及以下,图片地址可传参为:$param['pic'] = '@/tmp/test.png';如果版本大于 5.4,可以这样:$pic = '/tmp/test.img';$pic_info = explode('/', $pic);$c_file = new \CURLFile($pic, 'image/jpeg', end($pic_info));$param['pic'] = $c_file;原创 2022-04-05 16:22:08 · 655 阅读 · 0 评论 -
php加载脚本参数和环境变量
通过上篇文章聊聊php脚本执行流程我们知道 php 脚本执行流程大致分为以下几步:加载命令行参数和环境变量信号处理模块初始化请求初始化执行请求 今个就来看看是如何加载命令行参数和环境变量的,这块是在save_ps_args() 方法中处理的。extern char** environ;// save the original argv[] location herestatic int save_argc;static char** save...原创 2021-02-07 18:14:21 · 277 阅读 · 2 评论 -
聊聊php脚本执行流程
很多地方都能看到 php 的生命周期分为五个过程: 模块初始化 -> 请求初始化 -> 处理请求 -> 关闭请求 -> 关闭模块 问题是怎么就知道分为这几步了呢?今个从源码角度来看看。写一个简单的 php 脚本,从 gdb 调试开始:[root@localhost ~]$ cat test.php <?php echo 'hello world!';[root@localhost ~]$ gdb phpGNU g...原创 2021-02-06 19:22:57 · 1672 阅读 · 1 评论 -
yii框架之mysql封装
最近因采集项目中各服务日志信息,需要重写 mysql 基础类,故借此机会了解下。项目中常用 sql 语句大概有如下几种:1: $res = Yii::$app->get('test')->createCommand($sql)->queryOne();2: $res = Yii::$app->get('test')->createCommand()->update($table, $columns, $condition)->execute(...原创 2021-01-30 01:18:09 · 379 阅读 · 4 评论 -
聊聊php扩展架构
作为一名 phper, 对 php 扩展是如何实现的一直都有点好奇,今天就来看看 php 扩展的架构大概是什么样子的。随意看了几个扩展源码,发现 json 扩展的源码实现还是蛮简单的。不过再看它之前,咱们先自己生成一个扩展来看看。[root@iz2ze9ryeo103b85y5iy2wz ext]# pwd/usr/local/src/php/ext[root@iz2ze9ryeo103b85y5iy2wz ext]# ./ext_skel --extname=lucas ...原创 2021-01-18 00:35:54 · 177 阅读 · 0 评论 -
laravel-admin关联查询过滤
最近碰到这么个需求,需要在一张表中根据关联字段查询数据。比如user表和book表,表结构如下:CREATE TABLE `lucas_user` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(11) NOT NULL DEFAULT '' COMMENT '姓名', `phone` char(11) NOT NULL DEFAULT '' COMMENT '手机号', `u_time...原创 2021-01-13 19:53:03 · 2226 阅读 · 0 评论 -
laravel-admin之log-viewer扩展
前阵子看laravel-admin的demo,偶然发现一个好玩的东西。就是这个日志页: 之前开发后台过程中,总免不了会查看服务器上的log文件,但总觉得麻烦,看到这个就很方便啦!实际上通过log-viewer扩展来实现的。如果想在自己的后台系统也加上这么个模块,几步就可以了。#安装log-viewer扩展composer require laravel-admin-ext/log-viewer -vvv#生成log-viewer模块php artisan a...原创 2020-07-12 12:22:43 · 1209 阅读 · 0 评论 -
laravel-admin根据条件显示相应详情页
最近有这么个需求,在模型详情页需根据某个字段值不同显示不同详情。如state值只有1或2这两种,当state为1时显示调仓前和调仓后比例;为2时只需显示发车比例。解决方案如下:public function detail($id){ $show = new Show(FundVerify::findOrFail($id)); $model = $show->getModel(); $state = $model['state']; if ($s...原创 2020-07-01 22:07:26 · 2824 阅读 · 0 评论 -
php-fpm各进程运行模式
之前一直以为master进程负责监听请求,当请求到来后,分发给worker进程进行处理。 最近发现好像并不是这么回事。先看fpm_main.c文件中的main()方法,里面有这么一段:if (0 > fpm_init(argc, argv, fpm_config ? fpm_config : CGIG(fpm_config), fpm_prefix, fpm_pid, test_conf, php_allow_to_run_as_root, force_daem...原创 2020-06-13 16:22:25 · 767 阅读 · 0 评论 -
laravel-admin模型表格和详情展示关联数据
最近整一个后台管理系统,遇到这么个问题:需要在一个model的grid()和detail()方法中展示另一个model中的某个字段,但是只存了主键id,没存这个字段本身。之前也遇到过这种问题,也解决了,但总觉得不够优雅。之前代码如下这种:$grid->column('来源')->display(function() { $user_info = User::where(['id' => $this->user_id])->first();原创 2020-06-13 13:27:34 · 3018 阅读 · 2 评论 -
nginx与php通信机制
前阵子读yii源码,发现访问的路由最终是通过php预定义变量$_SERVER拿到的,就比较好奇$_SERVER又是怎么拿到的呢?这就涉及到web服务器与php的通信机制了,由于我这里的web服务器是nginx,这里就看nginx与php的通信机制了。 要研究这个问题,就得先了解一个概念:CGI协议。1.CGI协议 我们知道,web服务器只能处理静态内容,如果想处理动态内容,就要依赖web应用程序,如php、perl等。但web服务器如何将这些请求传递给对应...原创 2020-05-17 01:11:46 · 552 阅读 · 0 评论 -
yii框架路由解析(二)
继上篇yii框架路由解析(一)拿到调用接口后,接着看yii框架是如何处理的。还是从handlerRequest()方法看起:public function handleRequest($request){ list($route, $params) = $request->resolve(); $this->requestedRou...原创 2020-05-05 19:00:19 · 631 阅读 · 0 评论 -
yii框架路由解析(一)
其实这个大概两年前研究过,不过当时并没有记录下来,现在基本都忘了,所以今个在此记录下。这里借用下当前的一个项目,平时调用接口的url都是这样的:www.xxxx.com/fund/api/test现在就来看看yii框架是如何根据 fund/api/test 就找到对应的方法的。从框架入口文件开始:require(YII_VENDOR_PATH . '/autoload.php');...原创 2020-05-05 17:03:08 · 1565 阅读 · 0 评论 -
php获取本机内网ip地址
内网ip只能用于内部通信,而不能与其它网络互连。在tcp/ip协议中,专门保留了三个网段作为私有网段地址。分别如下:10.0.0.0/8: 10.0.0.0~10.255.255.255172.16.0.0/12: 172.16.0.0~172.31.255.255192.168.0.0/16: 192.168.0.0~192.168.255.255可以通过ifconfig命令查看本...原创 2020-01-26 18:39:05 · 2774 阅读 · 0 评论 -
php中post请求
最近需要抓取某黄金的历史价格数据,在网上找了一会儿,先是找到了第一黄金网,发现第一黄金网也是调用的他们自己的一个接口,还是post调用,果断写了个function,如下:function getData($url, $param) { $header = array('Content-type' => 'application/x-www-form-urlencoded');...原创 2019-10-22 03:03:35 · 1043 阅读 · 0 评论 -
php读取excel文件数据
PHP读取excel文件数据一般用phpexcel插件,但这个插件目前已经不再维护,改用phpspreadsheet,可以从github上clone。该插件读取excel数据还是很方便的,代码如下:require_once '.../vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php';class ReadExcelCo...原创 2019-07-12 20:53:13 · 564 阅读 · 0 评论