php
camellias_
这个作者很懒,什么都没留下…
展开
-
laravel8(六)使用自定义邮件类发送邮件
当登录邮箱为腾讯企业邮箱的时候。Phpmailer发送邮件就不好用了,具体哪里不好用,我没真没找到。但是,邮件得发啊,怎么办呢?百度上还是大婶多。我这里找了一个自定义的发送邮件类,腾讯企业邮箱也可用。但是,邮件发送失败,不会返回报错信息,这个可能是有点坑。源码如下:```php<?php namespace App\Extend;use Exception;/** * 一个简单的PHP SMTP 发送邮件类 */ class SmtpMail{ /**原创 2021-06-26 09:11:35 · 447 阅读 · 2 评论 -
laravel8(五)使用phpmailer发送邮件
一:下载phpmailer类库。我这里使用composer下载:composer require phpmailer/phpmailer二:开始使用/** * @name: 发送邮件方法 * @author: camellia * @date: 2021-01-19 * @param: $email string 发送给谁 * @param: $mail_title string 邮件标题 * @param: $mail_b原创 2021-06-25 08:28:24 · 315 阅读 · 0 评论 -
laravel8(四)使用simple_html_dom库解析html
首先:simple_html_dom下载地址:https://github.com/samacs/simple_html_dom这是一个PHP解析html的一个库。这玩意还是很有用的,比如我们在使用PHP做爬虫的时候,需要解析html中的内容等。他的强大之处不仅仅只是帮助我们验证html文档;更能解析不符合W3C标准的html文档。关于如何引入第三方类库,请移步《laravel5.8(十)引入第三方类库》laravel8中的设置方法也大同小异。一:加载html有三种方式调用这个类: 从u原创 2021-06-24 08:46:13 · 1288 阅读 · 1 评论 -
laravel8(三)文件上传提示 “The file deos not exits ” ,但确实已经上传了文件
Laravel 文件上传提示 “The file “” deos not exits ” ,但确实已经上传了文件首先使用代码抛出异常if($file->isValid()){ throw new \Exception('Error on upload file: '.$file->getErrorMessage());}我这里遇到的是上传大小限制,但是不抛出异常的时候,提示的是文件不存在,小白很容易误解!解决方案:我这里使用的是阿里云的centos服务器1:找到你的php.ini文原创 2021-06-22 08:47:21 · 431 阅读 · 0 评论 -
laravel8(二)配置自定义路由文件
Laravel8创建自定义路由文件与laravel5系列是有区别的。关于laravel5添加自定义路由文件,请移步《laravel5.8(十五)新增自定义路由文件》这里大概记录一下laravel8添加自定义路由文件的过程:1:首先在routes目录下创建你要添加的自定义路由文件我这里直接复制的web.php。2:修改app/Providers目录下RouteServiceProvider.php文件我这里也是直接复制web部分的代码改的名字3:修改app/Http目录下Kernel.php原创 2021-06-21 09:15:58 · 1327 阅读 · 0 评论 -
laravel8(一)Target class [XXXXXController] does not exist.错误的解决办法
Laravel 8配置好路由后,访问提示:Target class [XXXXXController] does not exist.错误。出现这个错误的原因是Laravel8对路由命名空间做出了更新(详见:路由命名空间更新),而我们仍然在使用Laravel6或者7版本的方式写路由。Laravel 8路由配置方式:use App\Http\Controllers\UserController; Route::get('/users', [UserController::class, 'ind原创 2021-06-17 13:52:34 · 5110 阅读 · 2 评论 -
laravel5.8(二十五)解决使用groupby报错SELECT list is not in GROUP BY clause and contains nonaggregated column
在laravel中数据库查询使用groupby报错:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sns.sns_users.md_img' which is not functionally dependent on columns i原创 2021-06-16 08:37:32 · 1119 阅读 · 0 评论 -
laravel5.8(二十四)生成二维码(qrcode)
PHP生成二维码,我这里使用phpqrcode类库。官网:http://phpqrcode.sourceforge.net/去官网直接下载就好,只是这个类库的版本有点老,但是足够用了。关于laravel5.8框架如何引入第三方类库,请移步《laravel5.8(十)引入第三方类库》我这里直接放上我使用的示例://二维码内容 $value = 'https://xxx.xxx.xxx/xxx/xx_xxx.html?id=' . $article_id;原创 2021-06-15 17:41:57 · 477 阅读 · 2 评论 -
CentOS7.8使用yum安装PHP 7.4
服务器是阿里云的centos7.8。之前安装的PHP版本是7.2,但是laravel8框架要求PHP的版本必须大于7.3我这里尝试使用编译安装了一下,但是编译安装的PHP-GD库扩展不支持jpeg,目前并没有解决这个问题。因此,我这里先使用yum安装一下PHP7.4。一、添加EPEL和REMI存储库运行以下命令以添加所需的存储库:sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noar原创 2021-02-02 09:49:18 · 1470 阅读 · 0 评论 -
Yii2框架(六)Yii2.0框架部署nginx服务器
一直在apache服务器下开发yii2.0的项目,apache下的部署可能没有什么。起码我没有遇到问题。服务器环境是nginx,在部署的时候发现了一个问题。按照正常的配置写入配置完成之后,访问报404错误。项目中的代码肯定是没有问题的。这个可能是什么情况。找了好久,也没有找到解决办法,后来看了下官方社区,哪里给出的配置,我试了一下,竟然好用,配置如下:重点是找不到真实存在的文件,把请求分发至 index.phpserver { charset utf-8; client_max_原创 2021-01-08 09:04:04 · 1650 阅读 · 4 评论 -
Yii2框架(五)日志的相关配置及使用
框架的运行日志(runtime)在开发过程中是很有用的,但是吧,这玩意我一般不太愿意用,主要是和直接在浏览器var_dump中输出,日志是将运行结果写到文件中去了,还要去看文件中的内容,比较麻烦。但是,在没有办法在浏览器中输出,或者需要在运行过程中输出,但是又不想打断她的运行的时候,日志是一个非常好的选择。Yii2.0框架的日志操作如下:大概有五种方式:Yii::getLogger()->log($message, $level, $category = 'application')Yii:原创 2021-01-06 08:57:00 · 457 阅读 · 0 评论 -
Yii2框架(四)Seesion及cookie操作
今天看一下Yii2.0框架对session以及cookie的操作。一:session1:存储session/** * 存储session */public function actionSession(){ Yii::$app->session['username'] = "111111"; Yii::$app->session['ses'] = "222222"; echo "success";}输出:session2:session取值/**原创 2021-01-04 11:59:05 · 443 阅读 · 0 评论 -
Yii2框架(三)控制器及视图操作
今天这部分内容可能比较杂,需要仔细一点。使用YII2.0框架搭建一个后台管理系统。有登录功能的。当然,这个登录功能先不做,这个留到之后cookie和session操作的时候,再看。后台管理系统,放到网站根目录下的backend目录中。我这里使用的adminlte模板,功能挺强大的,有兴趣可以去看下。官方网站:https://adminlte.io/首先,我们先将html页面的公共头尾抽成公共的文件。Yii2.0框架是有公共布局选项这个设置的:advanced/backend/views/layou原创 2020-12-31 14:02:25 · 570 阅读 · 0 评论 -
Yii2框架(二)数据库相关操作
Yii2.0的数据库操作。由于我这里安装的是yii2.0-advanced版本。这个破玩意是自带数据库的,上一篇的安装中数据库也一起随之安装完成。配置啥的,也都配置完成。不论什么框架,对数据库都是有一套自己独立封装的模型操作类。但是我一般都不用,学习成本太高,而且他其中封装的方法啥的一般都接触不全。学起来太费劲了。反正底层执行的都是sql。所以这里Yii2.0自己封装的数据库相关的模型操作,我就略过了。一般我习惯使用原生sql语句来对数据库进行增删改查。而且这种方法,我觉得对后期的维护也是一种很好原创 2020-12-30 09:52:22 · 674 阅读 · 2 评论 -
Yii2框架(一)安装及目录结构
如题:对,你要相信自己的眼睛,你没看错确实是Yii2框架。现在都2020年了,刚刚开始折腾Yii2框架难免有些过时,但是没办法,公司目前的项目是基于Yii2开发的,嘿,你说怎么这么巧,我还没用过Yii2框架。没办法,看手册呗。这玩意,万变不离其宗,总归还是PHP。之前用的多的大概就是thinkphp,从3到5再到目前的6,也是这样一步步过来的。Yii与thinkphp相比一定是有其独到的地方的。稍老的框架的好处就是,官方文档的bug可能是少一点,开发过程中遇到的问题,面向百度的时候可能答案更多一点原创 2020-12-29 09:25:42 · 1883 阅读 · 0 评论 -
phpexcel不完全研究(二)导入excel文件
有导出。自然就有导入。功能多样化嘛。不废话了,上代码。我这里使用的是tninkphp3.2框架/** * 导入excel */ public function putExcel() { ini_set('max_execution_time', '0'); Vendor('PHPExcel.PHPExcel.IOFactory'); // 真实路径 ./ThinkPHP/Library/Vendor/PHPExcel/原创 2020-12-28 13:47:05 · 140 阅读 · 0 评论 -
phpexcel不完全研究(一)导出excel文件
最近工作中需要用到phpexcel导出excel表格。自动存储在固定位置。之前导出excel使用header原生导出。但是这种方法,我没有找到可以自动存储的功能。如果你知道,请在下方留言,一起学习下。先说一下header导出。我这里使用的是thinkphp3.2框架./** * 导出excel表格 */ public function actionPutExcel() { $admin = M('admin'); $dbback原创 2020-12-21 09:32:58 · 136 阅读 · 0 评论 -
laravel5.8(二十三)导出PDF
有需求需要使用PHP导出pdf。下面记录一下我使用的两种方式一:laravel-tcpdf导出PDF文件Laravel框架为我们集成了一个插件tcpdf。下载地址:https://github.com/elibyy/tcpdf-laravel然后使用composer进行安装就可以了。具体安装过程,请移步《laravel5.8(十)引入第三方类库》使用的时候记得use 一下 命名空间。但是这里有一个问题,使用这个插件导出文件无法使用中文,且我还没有找到解决办法,因此,这个laravel的tcp原创 2020-12-01 09:31:23 · 625 阅读 · 0 评论 -
laravel5.8(二十二)laravel使用session报错session store not set on request
在使用laravel中的session的时候报错:session store not set on request.我是用的语句是:$request->session()->put('adminUserInfo', $data);查了下官方文档:需要在中间件中添加如下语句: \Illuminate\Session\Middleware\StartSession::class,文件位置:app/Http/Kerney.php再次请求,报错消失。有好的建议,请在下方输入原创 2020-11-30 10:04:39 · 689 阅读 · 0 评论 -
laravel5.8(二十一)laravel查询结果集转为数组的方法
Laravel框架从数据库中查询的结果集是以对象的 形势返回。但是对于一些时候,使用数组,可能要比使用对象要方便一点。这里我们大概看下,laravel中将对象结果集转换成数组的几个方法。1:toArray()方法(只对get查询的结果集有作用)toArray方法只对get方法查询的多条数据结果集有用。 $userInfo = DB::table("admin") ->where("username",$username)原创 2020-11-27 09:09:38 · 3029 阅读 · 2 评论 -
laravel5.8(二十)解决时区设置差8个小时解决办法
在使用laravel日志的时候,发现了一个问题,laravel日志记录的时候,总是要比我当前的时间差8个小时。在服务器端输出格式化时间,也是当前的时间,这个就有点奇怪。百度了一下。原来从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时,有以下5中方法可以恢复正常的时间。1:如果你是用的laravel框架,将根目录下的config目录下的app.php原创 2020-11-26 09:21:50 · 1505 阅读 · 0 评论 -
laravel5.8(十九)laravel 缓存cache
Laravel中的cache为我们提供了三种缓存机制。Redis,memcache,以及框架的文件缓存。这里主要看的是cache中的文件缓存。一:访问多个缓存存储使用 Cache 门面,你可以使用 store 方法访问不同的缓存存储器,传入 store 方法的键就是 cache 配置文件中 stores 配置数组里列出的相应的存储器:$value = Cache::store('file')->get('foo');Cache::store('redis')->put('bar',原创 2020-11-25 09:23:46 · 1099 阅读 · 0 评论 -
laravel5.8(十八)laravel 解决groupBy时出现的错误 isn“t in Group By问题
使用原生sql查询数据,语句如下:SELECT p1.*,p2.category_name,p3.name as exp_name,p3.CID,p4.name as school_name,count(p5.id) as expcidtimeCountFROM virtual_simulation p1LEFT JOIN virtual_category p2 ON p1.nlab_id = p2.idLEFT JOIN exp p3 ON p1.exp_id = p3.idLEFT JOIN原创 2020-11-24 09:57:30 · 790 阅读 · 0 评论 -
laravel5.8(十七)laravel获取上一条执行的sql
Thinkphp框架关于获取上一条执行的sql有封装好的函数getLastSql。但是目前在使用laravel框架中,我还没有查到有相关的函数。但是laravel提供了其他的方法:代码如下:DB::enableQueryLog();$userin = DB::table('user') ->where('personal_id', '=', $data['personal_id']) ->where('name', '=', $data['原创 2020-11-23 16:02:49 · 1416 阅读 · 0 评论 -
laravel5.8(十六)加密
Laravel为我们提供了完整的加密方法及加密模式。我之前一般在加密的时候使用的是我自己写的加密函数,但是这个玩意,有的位置还是不太使用,当然,破解的话,基本上也是不可能的。具体请移步《php加密函数与解密函数》这里具体看下laravel为我们提供的加密及解密方法。一:简介Laravel 的加密器使用 OpenSSL 来提供 AES-256 和 AES-128 加密。强烈建议使用 Laravel 自带的加密设置,不要尝试推出自己“土生土长”的加密算法。所有 Laravel 加密过的值都使用消息授权码原创 2020-11-20 09:18:50 · 324 阅读 · 0 评论 -
laravel5.8(十五)新增自定义路由文件
Laravel中我们除了使用框架为我们自己生成的web.php或者api.php之外,我们还可以根据我们自己的业务需求自定义路由文件。下边我们大概记录一下新增自定义路由文件的过程:1:新建路由文件在routes/目录下新建路由文件 routes/test.php内容如下Route::group(['prefix' => test], function () { Route::group(['prefix' => 'report'], function () {原创 2020-11-19 09:13:14 · 488 阅读 · 0 评论 -
laravel5.8(十四)连接oracle数据库
首先确定你的PHP已经支持oracle数据库的链接。PHP需要安装OCI8扩展。确定PHP可以链接ORACLE数据库之后。我们使用composer安装laravel支持oracle链接的插件 yajra/laravel-oci8一:使用composer安装 yajra/laravel-oci81:运行如下命令:composer require yajra/laravel-oci82:安装过程中可能会报错,不要纠结那些报错,最简单的解决办法:试试php artisan cache:clear原创 2020-11-18 11:10:05 · 590 阅读 · 0 评论 -
laravel5.8(十三)解决前后端应用分离访问跨域的问题
业务需要,前后端是分离的,那这边访问的域名也是不一样的,这就存在跨域的问题,跨域请求的解决方案有 CORS 和 JSONP(了解更多明细可以参考这篇教程),但是 JSONP 有个致命缺点 —— 仅支持 GET 请求,所以推荐使用 CORS(Cross-origin resource sharing,跨域资源共享),一般情况下,这个都是用自定义中间件来解决问题。1:使用 make:middleware这个 Artisan 命令创建中间件:php artisan make:middleware CrossH原创 2020-11-17 10:21:34 · 623 阅读 · 0 评论 -
laravel5.8(十二)hash的使用
laravel中的 Hash一般用于字符的加密/解密,常见的就是用作登录的密码验证 Hash::make与Hash::check做登陆验证和密码加密1:引入hash的命名空间use Illuminate\Support\Facades\Hash;2:加密字符串$pwd = Hash::make($request->newPassword); //加密存储这里需要注意一下,同一个字符串每次加密的结果是完全不一样的。比如123456第一次加密结果为:U2FsdGVkX1+8jxMYL原创 2020-11-16 09:23:49 · 647 阅读 · 0 评论 -
laravel5.8(十一)配置使用多数据库
有的时候,我们在开发的过程中需要连接多个数据库。Laravel框架中早已为我们想到了这样的需求。配置很简单。在根目录下的/config/database.php文件中配置:Laravel中为我们提前预设了多种类型的数据库连接 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'url' => env('DATABASE_URL'),原创 2020-11-14 10:00:42 · 391 阅读 · 0 评论 -
laravel5.8(十)引入第三方类库
有需求需要使用PHPMailer发送邮件。那么首先需要引入PHPMailer这个第三方的类库。我是这样做的:1:在app目录下新建Extend目录。如下图所示:将PHPMailer放入Extend目录下。如下图所示2:修改项目根目录下的composer.json文件"autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/原创 2020-11-13 11:56:15 · 728 阅读 · 0 评论 -
laravel5.8(九)session基本使用
Session这个玩意还是挺重要的。Laravel对于session的支持还是很完全的。一:文件位置Session 配置文件位于 config/session.php。默认情况下,Laravel 使用的 Session 驱动为 file 驱动,这对许多应用而言是没有什么问题的。在生产环境中,你可能考虑使用 memcached 或者 redis 驱动以便获取更佳的 Session 性能,尤其是线上同一个应用部署到多台机器的时候,这是最佳实践。 Session 驱动用于定义请求的 Session原创 2020-11-12 09:17:18 · 560 阅读 · 0 评论 -
laravel5.8(八)日志
Laravel框架的日志使用的是日志插件Monolog,这个应该是目前比较好用的日志插件之一了。官方给了一些配置日志的选项。说实话,可能是功力尚浅,没看懂。这就尴尬了。后百度了一下,大概明白了日志的一些大概的情况。一:配置官方日志插件1:配置logging.php文件位置:./config/logging.php在数组中添加一下配置'daily' => [ // 日志驱动 'driver' => 'daily',原创 2020-11-11 13:37:15 · 456 阅读 · 0 评论 -
laravel5.8(七)关闭csrf验证
Csrf验证这个我之前在使用Yii2框架中见到过。这个破玩意,请求必须得带上验证的字符串,半小时页面没有活动,必须重新刷新页面才能重新发起ajax请求。有点麻烦。当然,框架中使用这个自然是有他的好处。防止csrf攻击嘛。我在测试过程中,目前先关闭csrf验证。打开当前项目目录下的app/Http/Kernel.php搜索csrf如果没有问题的话,在这里只能搜索到一个结果。大概在38行左右。将当前这行代码注释掉就可以了。如下所示:这样,访问便不需要添加csrf验证也可以了。当前后端分离原创 2020-11-06 09:32:25 · 366 阅读 · 0 评论 -
laravel5.8(六)中间件(middleware)
中间件,第一次听到这个名字感觉好陌生,这是个啥呀,第三方插件?好像不是。之前也没有遇到过这个玩意啊。之前使用到的thinkphp5.0以及Yii2.0框架都是没有中间件这一说的。去thinkphp官网查了一下,要到thinkphp5.1.6才开始支持中间件。实现的方式基本上就是仿照laravel。一:那么什么时中间件呢:HTTP 中间件提供了为过滤进入应用的 HTTP 请求提供了一套便利的机制。例如,Laravel 内置了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向原创 2020-11-05 11:13:37 · 522 阅读 · 0 评论 -
laravel5.8(五)基本路由配置
在使用laravel之前我一直在使用thinkphp还有yii框架,这两个框架也有路由这一说,但是都没有用过。Laravel的路由功能其实还是挺全的,也很优雅~下面来说正题:1:路由的基本介绍Laravel框架默认为我们提供了两个路由文件,在根目录下的routes目录下有web.php以及api.php。这些文件通过框架自动加载,相应逻辑位于 app/Providers/RouteServiceProvider 类。routes/web.php 文件定义了 Web 界面的路由,这些路由被分配到了 w原创 2020-11-04 09:06:03 · 1025 阅读 · 0 评论 -
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。比如网站根目录,或者分页数,或者域名等等。那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。大概有两种方式:1:框架目录下引入(不推荐)在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php在autoload.php文件中引入。这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,原创 2020-11-03 15:31:48 · 693 阅读 · 0 评论 -
laravel5.8(三)数据库相关操作及配置
数据库相关的操作,大概看下laravel封装的增删改查的数据库操作方法以及laravel对原生sql的支持。一:执行原生sql1:查询select$results = DB::select('select * from users where id = ‘{$id}’');2:写入$result = DB::insert('insert into users (id, name) values (‘{$id}’, ‘{$name}’)');3:修改,该方法返回受更新语句影响的行数:$aff原创 2020-10-30 11:54:01 · 452 阅读 · 0 评论 -
laravel5.8(一)安装及部署
Laravel,传说中美丽优雅的框架。比较高端,之前了解的比较少。高端的东西多少还得了解点。一:安装安装大概有两种方式1:composer安装(网好的时候进行)修改 composer 的全局配置文件(推荐方式),然后输入安装命令composer config -g repo.packagist composer https://packagist.phpcomposer.com // 配置命令 composer create-project --prefer-dist laravel原创 2020-10-29 09:38:02 · 927 阅读 · 0 评论