![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 63
一杯雪花勇闯天涯
越努力越幸运
展开
-
【linux下安装php7.4.8】 No package ‘oniguruma‘ found
step1:下载php7.4.8安装包,并安装系统依赖包yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-develyum install libxml2-devel -yyum install openssl openssl-develyum install bzip2 bzip2-devel -y yum install curl-devel -yyum install libjpeg-devel -yyum install原创 2020-08-20 09:27:39 · 5945 阅读 · 0 评论 -
PHP 8.1.14升级低版本openssl扩展的操作方法
PHP 8.1.14升级低版本openssl扩展的操作方法原创 2023-03-04 14:34:18 · 2452 阅读 · 0 评论 -
centos7安装apache2.4.53+php8.1.3
学习目标:centos7安装apache2.4.53+php8.1.3学习内容1.安装apache1.安装必要依赖yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-develyum install libxml2-devel -yyum install openssl openssl-develyum install bzip2 bzip2-devel -y yum install curl-devel -yyum inst原创 2022-03-19 11:58:10 · 2778 阅读 · 0 评论 -
Web静态资源访问鉴权实现思路
1.背景前端时间公司的测试产品的时候,曾经发现一个问题未登录鉴权的js,在知道其访问路径的情况下也可以访问,这违反了公司的安全要求,要求研发整改2 思考事实上,在web端,使用apache作为服务器,一般放在公开目录,所有用户都可以不鉴权就可以访问,要实现js鉴权访问,那么每次访问js必须访问到控制器,在控制器的方法里面写鉴权逻辑3 方案方案一利用apache的.access文件重写规则,将需要的鉴权的js 重定向到一个指定的方法中进行鉴权 RewriteEngine on #开启mod原创 2021-12-04 23:19:13 · 1730 阅读 · 0 评论 -
thinkphp5.1 多个域跳转问题session共享解决方案
系列文章目录最近遇到一个多个域名跳转session的问题,这里写个Demo记录下思路文章目录系列文章目录准备条件一.问题描述二.实现过程1. 编写两个站点的登录控制程序(要求,未登录不能访问首页及相关接口,可以使用中间件实现)准备条件1.框架 thinkphp5.12.服务器apache3.MySQL数据库一.问题描述假设我有两个不同域名的站点 a.com ,b.com ,这两个站点之间都有登录,作为一个用户,我希望在a.com 登录之后我就可以不用到b.com登录,而是可以直接原创 2021-06-12 11:28:11 · 973 阅读 · 4 评论 -
Vue+thinkphp5.1+axios+实现文件上传示例
系列文章目录使用thinkphp5.1 + Vue+axios+实现文件上传文章目录系列文章目录前言一.页面代码二、解决接口跨域问题三.后端处理上传部分四.实际效果前言使用thinkphp5.1 + Vue+axios+实现文件上传一.页面代码<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>上传Demo</title>原创 2021-05-16 22:10:43 · 720 阅读 · 12 评论 -
thinkphp5.1自定义SESSIONID与自定义SESSION存储
系列文章目录文章目录系列文章目录前言一、自定义session_id处理总结前言最近公司项目在搞安全排查,发现php 里面默认的session_id明文存储不符合安全规范,生成的机制不符合安全随机数,要求整改,这里记录一下修改方案,以备不时之需。提示:以下是本篇文章正文内容,下面案例可供参考一、自定义session_id处理总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和原创 2021-05-14 22:59:15 · 2868 阅读 · 2 评论 -
php判断网卡是否插着网线
<?php/** * Created by PhpStorm. * User: php * Date: 2020/12/27 * Time: 13:33 */testRunning('ens33');/** * 获取网卡是否在运行 */function testRunning( $networkName = 'ens33'){ $cmd = 'ifconfig | grep ' . $networkName; $result = exec($cmd);原创 2020-12-27 13:59:21 · 98 阅读 · 0 评论 -
Apache 服务器安装thinkphp报404的解决方案
在public 目录下面的.htaccess问价中,添加如下代码块,并重启apache服务器<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,原创 2020-12-05 20:32:43 · 1353 阅读 · 0 评论 -
如何安全的配置php.ini
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1.限制php泄露信息2.删除不必要的扩展3.禁用远程代码执行4.开启错误日志5. 合理控制资源6 禁用危险的PHP函数7.上传文件8.保持版本最新9.控制文件系统访问10.控制POST大小11 .打开php的安全模式总结前言PHP的安全是广大开发人员担心的主要问题。虽然PHP提供从里到外的可靠安全,但是需要由开发人员正确地落实这些安全机制。我们在本文中将为Linux管理员介绍几个PHP安全要点。这些要点将帮助你确保We原创 2020-11-15 10:20:17 · 989 阅读 · 0 评论 -
我与xml的邂逅
文章目录前言一.什么是xml1.XML 和 HTML 之间的差异2.PHP中生成xml1.方法一,字符串拼接法,干净利落有效总结前言XML 指可扩展标记语言,设计用来传输和存储数据一.什么是xmlXML 指可扩展标记语言(EXtensible Markup Language)。XML 是一种很像HTML的标记语言。XML 的设计宗旨是传输数据,而不是显示数据。XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准。1.XML 和原创 2020-11-14 22:46:21 · 107 阅读 · 0 评论 -
nginx服务器部署Thinkphp 5.1框架报404解决方案
项目场景:Nginx服务器部署thinkphp5.1框架的时候报404错误问题描述:Nginx服务器部署thinkphp5.1框架的时候报404错误原因分析:nginx.conf配置文件中没有开启重写index.php解决方案:在nginx.conf中添加如下代码行if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break;配置的位置如下:...原创 2020-11-14 20:52:56 · 1102 阅读 · 0 评论 -
php之超大文件下载
一.php超大文件下载源代码demo<?php/** * Created by PhpStorm. * User: php * Date: 2020/11/9 * Time: 22:19 *///设置文件最长执行时间set_time_limit(0);$file = 'test.rar';if (file_exists($file) && is_file($file)) { $filesize = filesize($file); heade原创 2020-11-09 22:38:11 · 624 阅读 · 0 评论 -
php编码规范
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、php编码规范总结前言学习php编码规范,为了应对考试一、php编码规范总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...原创 2020-11-02 22:36:11 · 110 阅读 · 0 评论 -
php 中修改内存限制的三种方法
1.在php.ini里面设置memory_limit = 128M ; 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了–enable-memory-limit标志的情况下才生效修,改完毕后,保存配置文件并重启apache服务器2.通过PHP的ini_set函数设置ini_set('memory_limit', '128M');3.修改Apache的 .htaccess文件说明: 这种方法只有在php以Apache模块来执行时才生效.。在你的网站的根目录下原创 2020-10-28 23:15:10 · 4413 阅读 · 0 评论 -
tp5.1语言包Lang使用,详解
文章目录前言一.下载thinkphp5.11.compoer下载安装2.修改配置2.创建语言包目录3.添加apache配置文件.access4.语言包案例5.判断语言包里面是否包含key6 获取英文提示7.语言文件定义前言记录thinkphp5.1下面lang包的详细用法一.下载thinkphp5.11.compoer下载安装composer create-project topthink/think=5.1.* test2.修改配置【修改config/app.php文件】 /原创 2020-10-22 23:09:33 · 6549 阅读 · 0 评论 -
php之session_id()的工作原理
文章目录前言一.session工作原理1.session工作原理2.php.ini中session的配置信息3.测试session_id的存储二、session_id()工作原理1.官方文档说明总结前言 我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换。提示:以下是本篇文章正文内容,下面案例可原创 2020-10-16 23:10:57 · 1844 阅读 · 1 评论 -
根据字符串最后一次出现的位置将这个字符串拆分字符串为数组
1.要求:根据字符串最后一次出现的位置将这个字符串拆分字符串为数组<?php $pluginName = "Sensitive-plug-in_8.1.1.0-VA-D-cd-sd.zip";$resultArray = splitStringByString($pluginName,"."); var_dump($resultArray);function splitStringByString($string,$separtion = '.'){ $resultAr原创 2020-10-10 22:01:23 · 491 阅读 · 0 评论 -
从网卡中解析ip
getServerIp();/** * 获取ip地址 * */function getServerIp(){ $result = shell_exec("ip addr | grep inet "); $resultArray = explode("\n",$result); $serverIpString = $resultArray[2]; $serverIpString = explode("/",$serverIpString)[0]; $serverIp原创 2020-10-03 18:28:18 · 121 阅读 · 0 评论 -
php常见漏洞以及解决之道
1.sql注入漏洞恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服务端执行假如我们有一个公司网站,在网站的后台数据库中保存了所有的客户数据等重要信息。假如网站登录页面的代码中有这样一条命令来读取用户信息。<?$q = "SELECT `id` FROM `users` WHERE `username`= ' " .$_GET['username']. " ' AND `password原创 2020-09-03 22:31:41 · 722 阅读 · 0 评论 -
php调用系统底层的4个方法-system , shell_exec , exec , passthru
一.php执行系统命令的4个方法1.system()同 C 版本的 system() 函数一样-执行shell命令也就是向dos发送一条指令, 本函数执行 command 参数所指定的命令, 并且输出执行结果。如果 PHP 运行在服务器模块中, system() 函数还会尝试在每行输出完毕之后, 自动刷新 web 服务器的输出缓存官方示例:<?phpecho '<pre>';// 输出 shell 命令 "ls" 的返回结果// 并且将输出的最后一样内容返回到 $last原创 2020-09-03 22:04:53 · 3472 阅读 · 0 评论 -
php高性能的日志系统-seaslog
一.什么是日志系统?记录系统运行时候的日志信息,系统日志,应用日志、安全日志二、为什么需要日志系统1.了解系统的运行情况2.记录用户的操作信息3.收集数据三.为什么选择seaslog1.高性能2.无需配置3.功能完善,使用简单四.如何安装seaslog1.打开https://pecl.php.net下载seaslog扩展包wget http://pecl.php.net/get/SeasLog-2.1.0.tgz解压文件tar -zxvf SeasLog-2.1.0.tgz原创 2020-09-02 21:48:31 · 526 阅读 · 1 评论 -
phpword之读取示例
读取操作方法 function readWordToHtml($source) { $phpWord = \PhpOffice\PhpWord\IOFactory::load($source); $html = ''; foreach ($phpWord->getSections() as $section) { foreach ($section->getElements() as $ele1) {原创 2020-08-29 16:40:05 · 1427 阅读 · 4 评论 -
phpword初体验-写入文件
引言PHPWord是一个用纯PHP编写的库,它提供了一组用于读写不同文档文件格式的类。当前版本的PHPWord支持Microsoft Office Open XML(OOXML或OpenXML),用于Office应用程序的 OASIS 开放文档格式(OpenDocument或ODF),富文本格式(RTF),HTML和PDF。github代码仓库https://github.com/PHPOffice/PHPWord安装phpsword composer require phpoffice/phpw原创 2020-08-29 16:14:32 · 826 阅读 · 0 评论 -
swoole 与thinkphp5.0完美结合(亲测可用)
第一步:使用composer 下载安装thinkphp5.0框架composer create-project topthink/think=5.0.* think-swoole-5.0 --prefer-dist第二步:在tp5的框架目录中新建一个server 目录,用于存放http_server文件在server 目录下面新建一个Http.php文件<?php/** * Class Http http服务器 * 利用swoole提供的http服务器与thinkphp5.1原创 2020-08-20 21:26:18 · 4862 阅读 · 1 评论 -
Centos7 下使用rpm 方式安装php7.4.x
第一步:添加第三方REMI源yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 第二步:安装PHP 7.4.X及相关模块 yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-ph原创 2020-07-30 07:51:57 · 3231 阅读 · 0 评论 -
Redis Geo 实践
范围可以使用以下其中一个单位:m 表示单位为米。km 表示单位为千米。mi 表示单位为英里。ft 表示单位为英尺。在给定以下可选项时, 命令会返回额外的信息:WITHDIST : 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。WITHCOORD : 将位置元素的经度和维度也一并返回。WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用原创 2020-07-06 19:04:10 · 995 阅读 · 0 评论 -
No route to host
php 无法连接docker 环境安装的redis真相就是centos7系统自启的防火墙在作怪:解决方案:查看防火墙状态: firewall-cmd --state 停止防火墙systemctl stop firewalld.service禁止防火墙开机自己启动systemctl disable firewalld.service ...原创 2020-06-09 12:29:15 · 524 阅读 · 0 评论 -
thinkphp5.1的行为钩子
一.什么叫做钩子ThinkPHP中的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应用,而在外围通过扩展或者配置来改变或者增加一些功能。而不同的行为之间也具有位置共同性,比如,有些行为的作用原创 2020-05-16 16:01:56 · 520 阅读 · 0 评论 -
Fatal error: Uncaught think\exception\ErrorException: include(): Filename cannot be empty.
今天在使用docker 容器部署thikphp5.1框架遇到一个很奇怪的问题,docker 容器端口路径都映射正确的情况下面,thinkphp5.1居然报错了Fatal error: Uncaught think\exception\ErrorException: include(): Filename cannot be empty,这个可把我弄懵了,经过查询资料发现这个是因为thinkphp5.1 使用了env文件的导致的后来我把app.php文件里面下面三项注释掉,我尝试运行,这回它居然正常跑起来了原创 2020-05-15 11:42:21 · 12504 阅读 · 1 评论 -
No releases for package "pecl/swoole" exist
解决方案:1.更新channelpecl channel-update https://pecl.php.net/channel.xml2.清除pear缓存pear clean-cachepear update-channelspear upgrade重新执行pecl install https://pecl.php.net/get/swoole-4.4.1.tgzdocke...原创 2020-05-06 15:00:45 · 1160 阅读 · 0 评论 -
Symfony\Component\Debug\Exception\FatalThrowableError Class 'Lcobucci\JWT\Builder' not found
这回phpstrom真把我快坑哭了,我本地用phpstrom配置的远程连接上传本地环境的vmare的docker php环境中运行,我一直调试,结果一直报错Symfony\Component\Debug\Exception\FatalThrowableErrorClass ‘Lcobucci\JWT\Builder’ not foundcomposer 下来的包,它不自动上传在百度上找了...原创 2020-03-27 16:34:36 · 3330 阅读 · 0 评论 -
基于docker PHP运行坏境,调试接口数据有返回但是http状态码报500
这个问题困惑了我很久,我在本地用集成环境调用同一个方法数据可以正常返回,但是代码正常传到docker运行目录的时候,就出现了数据正常返回,状态码报500的问题,着实让我找了很久的问题,最后才发现是项目文件没有执行权限的问题,使用chmod -R 755 test 执行完以后就可以正常访问了!...原创 2020-03-20 12:11:02 · 478 阅读 · 0 评论 -
PHPUnit框架在window下面的安装
windows环境下面安装为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin将 ;C:\bin 附加到 PATH 环境变量中(相关帮助)下载 http://phar.phpunit.cn/phpunit-6.2.phar 并将文件保存到C:\bin\phpunit.phar打开命令行(例如,按 Windows+R » 输入 cmd » ENTER) C:\Users\...原创 2020-03-18 11:12:24 · 143 阅读 · 0 评论 -
PHP-FPM工作模式及其环境搭建
1.什么什么叫做PHP-FPM呢?FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。 它的功能包括:支持平滑停止/启动的高级进程管理功能 可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini配置文件(可取代 safe_mode 的设置); stdout 和 stderr 日志记...原创 2020-02-26 00:09:24 · 692 阅读 · 0 评论 -
PHP面试题总结
1、冒泡排序,面试前一定要记住哦!123456789101112131415 function maopao(KaTeX parse error: Expected '}', got 'EOF' at end of input: arr){ len = count(arr); &nbs...原创 2020-02-11 17:30:28 · 489 阅读 · 0 评论 -
php性能优化
一、php 性能问题析1.php性能问题一般不会站整个项目性能问题的占比的50%,性能优化项目不能仅限优化php.二、php性能的解决方向压力测试工具ab(Apache Benchmark) 简介:ab是Apache提供的压力测试软件,在Linux上安装Apache服务器,一般自带安装了ab工具。单独安装:sudo yum - y install httpd-toosl查看版本: ab...原创 2020-02-11 19:41:15 · 198 阅读 · 0 评论 -
Php 7.0下对MongoDB的操作
/**mongo测试@throws MongoCursorException@throws MongoCursorTimeoutException@throws MongoException*/public function mongotest(){$bulk = new MongoDB\Driver\BulkWrite;$document =array(“id...原创 2018-12-10 15:04:12 · 480 阅读 · 0 评论 -
thinkphp下如何引入第三方插件
thinkphp下如何引入第三方插件今天要做一个上传文件的功能 ,需要 将上传的内容需要读取出来,这就需要用到phpExcel插件,结果死活都引入不进去,郁闷了一个下午。最后发现tp5已经自定义了一些常量 可以直接使用:我将插件放在extend目录 下,引入 的时候需要 如下代码:require_once EXTEND_PATH.‘excel/PHPExcel/IOFactory.php...原创 2018-12-10 15:11:33 · 2155 阅读 · 0 评论 -
Sessin、redis、文件缓存(catch)、DB读取速度比较分析
step1:往数据库里添加1000条测试数据执行这个方法的结果:step2:将数据写入redis缓存,文件缓存,和session经过测试发现四种方式,读取的快到慢的顺序为:Session最快,Db最慢,文件缓存有时比redis快,有时比redis慢Session不建议存储大量的数据,因为session是占用的服务器内存,所以内存越大,能存的值就越大,原则上讲无上限,一般用于存储...原创 2018-12-10 15:16:47 · 2089 阅读 · 0 评论