
PHP
Caspian Wren
吃饱了不饿
展开
-
PHP手动加载第三方类到vendor文件后,使用composer自动加载类找到添加的SDK
有时候我们要使用的第三方的类库(SDK)没用用composer封装好,无法用composer进行安装,怎么办呢???原创 2023-02-09 18:35:42 · 708 阅读 · 0 评论 -
PHP利用GD库生成折线图
如图,PHPGD库生成折线图;<?php // 1.创建画布$width = 600;$height= 400;$image=imagecreatetruecolor($width,$height);$red = imagecolorallocate($image, 45, 56, 12);$fff = imagecolorallocate($image, 255, 255, 255);imagefill($image,0,0,$red);// x轴imageline..原创 2020-06-16 14:23:35 · 732 阅读 · 0 评论 -
Linux安装PHP_REDIS扩展
先下载:http://pecl.php.net/package/redis根据你的PHP版本选择适当的版本;(php版本过低,phpredis过高会导致make时失败)1、解压到你要存放的目录2、phpize打模块(查看你的phpize模块在哪)3、编译配置(找到php-config)4、make & make install5、将redis.so配置到php.ini中6、php -m 查看php有没有加载redis扩展7、重启php(简易文档)...原创 2020-05-19 21:40:13 · 276 阅读 · 0 评论 -
THINKPHP5.1 ERGEXP 如何使用
$result = self::alias('scr') ->where($searchContent,'exp',"REGEXP '".$content."' ") ->field($field) ->select() ->toArr...原创 2020-04-28 21:37:33 · 613 阅读 · 0 评论 -
PHP返回两个日期内的所有天数集合
/*** * 返回两个时间内所有的时间集合 单位:天 * @param $startTime 开始时间:eg示例:2020-04-01 * @param $endTime 结束时间:eg示例:2020-04-20 * @return array 返回集合列表 */ public static function...原创 2020-04-22 11:07:35 · 631 阅读 · 0 评论 -
THINKPHP3.2.3 批量插入与ON DUPLICATE KEY UPDATE之间怎么写
最近二开之前16年的一个项目,其中我的一个插入需求是这样的1、批量插入2、根据唯一的索引,已经存在的只修改不新增TP3.2中的文档并没有明确指出用什么语法函数去操作,但指出了一个地方是:但是我用insert却不行最后换了addAll解决;代码: $addResult = $this->M_DATA->table("data_day_test")-&g...原创 2020-02-26 15:43:43 · 809 阅读 · 0 评论 -
PHP创建UDP服务器
<?php//服务器信息 $server = 'udp://127.0.0.1:9998'; //消息结束符号 $msg_eof = "\n"; $socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND); if (!$socket) { die("$errstr ($err...原创 2019-12-12 11:29:08 · 1417 阅读 · 0 评论 -
PHP封装二:获取方法和设置方法
为了保护封装,同时提供可访问性,OOP设计建议使用获取方法(getters)和设置方法(setters),也分别称为存取方法(accessors)和修该方法(mutators)。不建议直接访问一个类,通过赋值来得到或修改属性,这些工作完全可以有获取方法/设置方法来完成。一般地,使用获取设置方法必须适度;滥用会破坏封装;举例说明:<?php/** * Create by Php...原创 2019-11-28 22:24:11 · 294 阅读 · 0 评论 -
PHP封装一:通过可见性保护封装
谈到封装大家都会想到另外一个词就是:信息隐藏(information hiding), 如果一开始让你理解封装就直接谈信息隐藏并不一定有帮助或者更好的理解,那我们实际上可以先去了解什么是划分(compartments)。Crady Booch给出以下描述:封装就是划分一个抽象的诸多元素的过程,这些元素构成抽象的接口和行为;封装的作用就是将抽象的契约接口与其实现分离一旦把一个复杂的...原创 2019-11-27 23:18:42 · 259 阅读 · 0 评论 -
php类型提示:类似数据类型
OOP和设计模式中抽象有很多的重要的结构要素,其中一个就是指定数据类型的为接口而不是一个具体实现,这说明对数据的引用要通过父类完成,这通常是一个接口或抽象类。提供类型提示的基本格式如下:function doWork(TypeHint $someVar)类型提示必须是类或者接口的名字。在设计模式中,更倾向于使用抽象类或者接口,因为他不会绑定一个具体实现的类型,而是限制了结构。实例...原创 2019-11-26 23:39:43 · 358 阅读 · 0 评论 -
PHP接口和常量
尽管不能再接口中包含变量,但是可以包含常量。要使用常量,需要用到"作用域解析操作符"即是双冒号::,示例:使用接口常量的一般格式$someVariable = InterfaceName::SOME_CONSTANT;演示:接口文件 IConnectInfo.php<?phpinterface IConnectInfo{// 定义常量 co...原创 2019-11-26 22:58:40 · 587 阅读 · 0 评论 -
PDO连接数据库的三种方式
一:参数形式<?php//通过参数形式连接PDOtry{ $dsn = "mysql:host=localhost;dbname=wqzbxh"; $username = 'root'; $passwd = 'root'; $pdo = new PDO($dsn,$username,$passwd); var_dump($pdo);}cat...原创 2019-11-20 21:47:30 · 996 阅读 · 0 评论 -
php合并数组的三种方式:“+”运算符、array_merge、array_merge_recursive
“+”运算符当两个数组的键名是 数字键名 或者 字符串键名 可以直接 +,$c = $a + $b,在$a后追加($b在$a中不存在的键名)键名和值。/* “+”运算符、 */$jiaArr = array( '1'=>'xiaoli', '2'=>'xiaohua', '3'=>'xiaoming', 't'=>'teacher',);$jiaB...原创 2019-11-11 15:39:34 · 444 阅读 · 0 评论 -
laravel在项目维护情况下允许个别IP可以访问?
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16在你执行命令 php artisan down 的时候添加allow参数,添加白名单;原创 2019-11-10 00:09:23 · 644 阅读 · 0 评论 -
PHP UDP协议时超时设置
stream_set_timeout—Establecer un perido de tiempo de espera en un flujo意思就是在建立流的过程中设置超时,看下面代码: /** * @param string $sendMsg 发送指定内容 * @param string $ip ip地址 * @param string $po...原创 2019-11-01 10:34:41 · 557 阅读 · 0 评论 -
致命错误: Call to undefined function captcha_src()
致命错误: Call to undefined function captcha_src() <form method="post" class="layui-form"> <input type="text" name="access" lay-verify="access" placeholder="用户名" cla原创 2018-10-21 13:09:34 · 8084 阅读 · 0 评论 -
请求对象 小技巧
主要是没有继承系统类的控制器适合这种,叫做构造方法注入很方便:<?php/** * Created by PhpStorm. * User: k * Date: 2019/7/1 * Time: 10:06 */namespace app\web\controller;use think\Request;use think\facade\View;class L...原创 2019-07-01 12:00:36 · 184 阅读 · 0 评论 -
SQLSTATE[HY000] [2002] No such file or directory之YII2
前几天部署自己在上家公司的项目时,出现的这个问题,可能有些同学会晕,我的配置信息都是正确的为什么部署到linux上面不行呢?这里只介绍我这边遇到的,其实就是localhost应该换成127.0.0.1,原因如下:你写localhost时mysql会采用 socket连接方式,yii pdo组件找不到mysql.sock 这玩意时会抛出来这个错误;而你直接127.0.0.1 是采用的tc...原创 2019-07-16 10:16:18 · 361 阅读 · 0 评论 -
PHP原始验证码生成
<?php session_start(); $image = imagecreatetruecolor(100, 30); //新建一个真彩色图像, //5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image...原创 2019-09-02 16:40:33 · 230 阅读 · 0 评论 -
PHP实现一个双向队列
<?php class Twowayqueue{ private $array=array(); public function addHead($element){ return array_unshift($this->array,$element);//array_unshift:向数组头部插入一个元素,返回数组中新的元素数目。 } public...原创 2019-09-16 10:04:16 · 148 阅读 · 0 评论 -
显示当前文件下的所有的文件名
$x = dir('F:/备份/wechat');while($y=$x->read()){ echo $y."<br>";}$x->close();原创 2019-09-29 17:34:38 · 218 阅读 · 0 评论 -
PHP抓取网页内容
其实就是利用curl把资源来过来以后筛出你想要的东西,本文只适合简单的页面抓取:直接上代码(注释都在代码) /** * 抓取APP查看版本网页 */ public function version(){ @header('Content-type: text/html;charset=UTF-8'); $url = "htt...原创 2019-10-10 19:07:15 · 185 阅读 · 0 评论 -
取出二维数组中每个数组元素的第一个值 ,组成新的数据
$arr = [ 'name' =>array('校长','老师','学生'), 'action' =>array('管理','教书','听书'), 'leve' =>array('真好','不赖','捣蛋'),];目标:取数组中的name的第一个元素,与action的第一个元素、leve的第一个元素 作为新数组中的第一个元素; 取数组中的n...原创 2019-07-10 14:45:55 · 13642 阅读 · 0 评论 -
PHP中unpack在服务器和本地不一样?
unpack:函数从二进制字符串对数据进行解包。检查一下你本地的环境和服务器环境是否一致:比如说是本地是64的 服务器是linux 很可能就会出现同样的程序产生的结果不一样:解决办法:找一下该函数的参数,然后选择环境对应的参数即可:例如 64位下的n* linux就对应v* ,可以自己试一下...原创 2019-05-15 17:38:04 · 197 阅读 · 0 评论 -
LINUX部署PHP—访问入口文件然而直接是下载入口文件?
最近被很多人问到这个问题,其实你部署安装的经验多了就知道是什么问题了。问题原因:当你在linux上部署你的php项目,无论是TP、YII还是LAravel,出现这个问题99%的是你的环境有问题,无论你是apache,还是Nginx,你的PHP文件时没有解析的,所以默认访问的是一个php文件,并没有解析文件中的内容,浏览器会直接把他作为一个文件下载下来。解决办法:1、如果是apach...原创 2019-04-30 09:52:59 · 3680 阅读 · 3 评论 -
PHP实现下载文件?
$length = filesize($file); $type = mime_content_type($file); $showname = ltrim(strrchr($file,'/'),'/'); header("Content-Description: File Transfer");...原创 2018-11-05 12:36:10 · 2779 阅读 · 0 评论 -
thinkphp5 跨数据库进行查询?
大前提:如果你配置的两个数据库是同一台服务器下: 第一种情况:你的数据库用户配置的是root,拥有最高的权限,不用担心数据库权限问题直接在join的时候这样join('shujuku.table a ………………')也就是在你的表前面.指向你的数据库,一般是没问题的; 第二种情况:数据库分开的 ,就是两个库是两个不同的用户掌管的,你在...原创 2018-11-07 16:13:13 · 1986 阅读 · 0 评论 -
LInux怎么配置php全局变量
你已经安装了php软件 但是php -v 却发现[root@iZ2ze6izib4uzfy3rzu875Z php720]# php -v-bash: php: command not found这是因为你没有配置变量: 步骤1;打开etc的profile[root@iZ2ze6izib4uzfy3rzu875Z php720]# vim /etc/profile步骤...原创 2018-10-30 18:53:14 · 3219 阅读 · 0 评论 -
No input file specified.
path_info 引起的;一般改一下这个地方就好了:. htaccess这个文件中<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_...原创 2018-10-27 21:26:43 · 621 阅读 · 0 评论 -
PHP查mysql库中表是否存在
直接的函数是没有的。你真可以这样:1\写一个原生的sql $sql = "show tabels like 'table'";2\然后query执行 $result = query($sql) ;3\根据结果判断 if(!empty($result)){echo "存在";}else{echo "不存在"} $sql = 'SHOW TABLES LIKE "'....原创 2018-10-30 14:19:50 · 2388 阅读 · 0 评论 -
php生成XML文件步骤
步骤1、实例化 DOMDocument类2、创在节点3、节点套节点4、追加属性内容等这是方法里面的全部内容: $doc = new \DOMDocument('1.0','utf-8');//引入类并且规定版本编码 $grandFather = $doc->createElement("Grandfather");//创建节点 ...原创 2018-10-23 11:40:15 · 3346 阅读 · 0 评论 -
php 执行Linux命令
比较常用的有exec()、system()等;第一步确认你的配置是不是符合的:php.ini 中:1、 disable_functions = 后面是不是你要运行的函数在里面,在的情况下删去2、display_errors = On 重启你的php、服务器进行测试!...原创 2018-10-25 16:10:33 · 1351 阅读 · 0 评论 -
THINKPHP之最简单的验证码搭建
1、建立html页面:重要内容<div class="login"> <h1 style="margin-bottom: 40px;"></h1> <form method="post" class="layui-form"> <input type="t原创 2018-10-19 16:49:43 · 231 阅读 · 0 评论 -
ThinkPHP怎么查询数据库所有的表名呢?
业务场景:有一些数据库中的表示随机生成有规则的表比如:server1、server2……见下面:没有看到教程上有写 show tables的写法 ,所以就用了原生的: //获取所有的表名 public function getTables(){ //获取表名 $result = self::query('show tables')...原创 2018-10-18 10:09:29 · 4148 阅读 · 0 评论 -
Mysql简单的存储过程怎么写
//创建存储过程CREATE PROCEDURE userData( IN id INT)BEGIN SELECT * from userdata WHERE userflag = id;END;其中IN是传进去的变量;drop procedure userData;//销毁这个存储过程call userData(2) //调用存储过程简单运行一下看效果:(nav...原创 2018-11-05 15:53:58 · 32079 阅读 · 0 评论 -
php生成一个文件?
生成一个文件?<?php $myfile = fopen('php基本语法/newfile.txt',"w+"); $txta = "Likn:awww.baidu.com/,www,jd.com/\n"; $txtb = '192,168,12'; fwrite($myfile,$txta); fflush($myfile);//当写入的过多的时候,可以刷新一下句柄...原创 2018-11-11 20:04:05 · 1460 阅读 · 0 评论 -
PHP数组知识点
一、数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr);在数组中检索apple ,如果存...转载 2019-02-13 17:38:33 · 181 阅读 · 0 评论 -
THINKPHP3.2 怎么配置多个数据库
<?phpreturn array(//默认数据库 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'thinkphp', // 数据库名 'DB_USER' => 'roo...转载 2019-01-23 14:58:56 · 2733 阅读 · 0 评论 -
php数据类型
字符串、整数、浮点数、逻辑、数组、对象、NULL。原创 2019-01-22 10:57:45 · 186 阅读 · 0 评论 -
tp3.2 跨数据库查询
在config.php中加入要使用的数据库配置信息'DB_WECENTER' => 'mysql://用户名:密码@主机名或ip地址:端口号/库名', 例子M('article','aws_','DB_WECENTER')->field('id,title,title_fulltext')->where(['id'=>$id])->find();...转载 2018-12-14 17:44:25 · 644 阅读 · 0 评论