
php
有梦想的
主要是记录开发过程中遇到的问题,便于日后查阅,温故而知新。 技术交流V:kaifa8898
展开
-
nginx 多if判断。
set $play 0; if ($request_uri ~ "play") { set $play "${flag}1";} if ($http_user_agent ~* Baiduspider){set $play "${flag}1";} if ( $play = "011" ){ return 301 http://www.www.com$request_uri; }原创 2021-01-04 04:14:33 · 592 阅读 · 0 评论 -
php curl推送搜狗链接收录
function sogouPush($url){$postUrl = 'http://fankui.help.sogou.com/index.php/web/web/addShoulu';$postData = array( "source" => "1", "site_type" => "1", "Shoulu" => array("webAdr...原创 2020-01-10 17:01:05 · 1701 阅读 · 0 评论 -
thinkphp3.2 防止修改模板文件后再次生成静态页面,底层代码修改。
最近有个小项目需要用真静态实现,而且动态访问时每次都是变化的,静态呢就很好解决,但是如果一旦修改了模板文件那么静态页面就会再次生成,这样对业务逻辑造成了很大的问题。然后追踪底层代码,发现问题是tp内核会在访问控制器的时候先判断模板文件是否被修改,如果修改了那么就会再次生成。最终代码位置:/core/Library/Behavior/ReadHtmlCacheBehavior.class.p...原创 2019-12-17 15:05:33 · 463 阅读 · 0 评论 -
php引入广告
<?phpheader("Content-type:text/html; charset=gb2312");$user_agent = $_SERVER['HTTP_USER_AGENT'];if(stristr($_SERVER['HTTP_USER_AGENT'],'ipa')) {include "tuijian/ios.js";}else if(stristr($_SERV...原创 2019-11-30 16:54:00 · 410 阅读 · 0 评论 -
php 转Ascii编码
/** * ascii 转换 * @param $c * @param string $prefix * @return string */function ascii_encode($c, $prefix="&#") { $len = strlen($c); $a = 0; while ($a < $len) { $ud = 0...原创 2019-11-27 09:41:37 · 1494 阅读 · 0 评论 -
php防跨站攻击.user.ini批量生成
#!/bin/bashpath='/home/wwwroot/www'for file in `ls $path`do touch .user.ini echo "open_basedir=$path/$file/:/tmp/:/proc/" > $path/$file/.user.ini chattr +i $path/$file/.user.inidone...原创 2019-11-25 10:01:14 · 956 阅读 · 0 评论 -
服务器安全问题,被入侵后的排查和处理
最近一直在研究服务器安全的问题,真正体验了什么是一个老鼠坏锅汤的真实例子。因为有个同事在某站下载了一套帝国cms仿逗游网的源码,安装在了服务器上。导致服务器上所有的大网站以及有权重有流量的站全被被劫持。曾经也有过被劫持的情况,不过都是在另外一台服务器,找到后门删了就没了。这次就不是了,严重了!服务器一共200多个网站,6个高权重网站被黑,都被插入了劫持的js代码,而且全是在主页,可能其...原创 2019-11-22 12:09:43 · 1104 阅读 · 0 评论 -
服务器防止webshell后门 ,php禁用eval
服务器被搞的不能行,因为特殊原因必须去市场上购买模板,所以避免不了被留下了后门。研究了很久的后门,发现都是通过eval函数引起的,eval其实并不是一个函数,而是底层提供第一种特性。看了百度很多文章,都是通过php扩展来禁用eval,我们是站群服务器,yum install wget make gcc gcc-c++ zlib-devel openssl openssl-dev...原创 2019-11-20 11:16:05 · 1353 阅读 · 0 评论 -
帝国cms电影批量插入评论
<?php$dbhost = 'localhost:3306'; // mysql服务器主机地址$dbuser = '51ady'; // mysql用户名$dbpass = '51ady'; // mysql用户名密码$conn = mysqli_connect($dbhost, $dbuser, $dbpass);if(!...原创 2019-11-19 15:15:25 · 1233 阅读 · 0 评论 -
php高pv下服务器配置和进程的问题
最近服务器一直扛不住,32核32G的服务器竟然撑不起几个大流量的网站,经常性负载在50以上,但是cpu的使用率和内存使用率却很低,我看了下nginx的进程,因为没有设置的原因,都是auto状态。32核那么就会有32个worker进程,我看了下php的,竟然多达100多个,因为我安装了php7.0 5.6 5.4 这三个版本, 但是因为我进程的设置问题没有分配好,导致资源利用很浪费。...原创 2019-11-15 15:30:09 · 281 阅读 · 0 评论 -
php生成百度、神马、360、搜狗sitemap xml文件
//yisvip_com_ecms_news 数据库名 网站名 目录名 private $footSite1 = ['wyhaa', 'aaaa']; //www_haojio_com_ecms_news 数据库名 网站名 目录名 private $footSite2 = ['aaaa','bbbbb']; public function generate...原创 2019-08-22 18:59:52 · 1673 阅读 · 0 评论 -
92kaifa源码域名限制破解
800块买了套代码,做了个电影站。 改改弄弄算是好了,想做第二套的时候发现做不了了 被加密了,只能一个域名下访问追了1小时代码 破解掉了把 /e/class/connect.php里 函数ReplaceListVars()里 大约 3200行_yzm();注释掉大功告成...原创 2019-08-21 18:28:00 · 2928 阅读 · 2 评论 -
linux下fread读取文件产生换行的问题处理
php读取文件内容的时候,在windows下是正常的,但是在linux在就莫名多了一个换行解决方式<?php$filename = "aa.txt";$handle = fopen($filename, "r");//读取二进制文件时,需要将第二个参数设置成'rb'//通过filesize获得文件大小,将整个文件一下子读到一个字符串中$contents = fread($hand...原创 2019-07-14 22:58:40 · 2249 阅读 · 0 评论 -
curl以json形式post请求
/** * 发送 http 请求 * * @param string $uri 请求的地址 * @param array $data 发送的数据 * * @return bool */function post_data($url = '', $data = array()){ $data = json_encode($data); $ch = curl_ini...原创 2019-05-28 18:11:05 · 1972 阅读 · 0 评论 -
棋牌游戏需要的php扩展包
缺少mbstring yum install php70w-mbstring.x86_64缺少posix_getpid拓展yum install php70w-process原创 2019-03-22 10:24:46 · 1504 阅读 · 0 评论 -
laravel添加路由涉及到的文件
假设增加一个game的路由,1.在router里增加game.php2.在RouteServiceProvider中增加映射3.在Middleware中增加game.php中间件,可直接复制apo.php4.在Kernel.php中注册中间件。大功告成。 只是列出了步骤。...原创 2019-03-20 18:27:08 · 560 阅读 · 0 评论 -
php中使用redis实现简单的订阅发布功能
1.创建pub.php (发布)ini_set('default_socket_timeout', -1);$redis = new Redis();$redis->connect('127.0.0.1', 6379);$redis->auth("xiuxiu.123xyz"); $strChannel = 'Test_bihu_channel';//发布$redis-...原创 2019-03-20 14:44:25 · 1753 阅读 · 0 评论 -
记录一次公司全部业务暂停的重大事件
今天下午公司所有项目全部挂掉,商家端App无法放问,客户端App无法访问,用户端小程序无法访问、后台管理系统无法访问.......页面没有报任何错误原因,直说无法连接网页,很显然如果php-fpm挂了的话,nginx肯定会报出错误,但是nginx也没报出错误,这个就很奇怪了,难道服务器挂了? 我们公司主要业务是做支付的,类似于收款码,付款码这种。商户数1000多家。 然后我们...原创 2019-03-19 22:17:50 · 480 阅读 · 0 评论 -
php laravel jwt权限验证
JWT 完整使用详解https://learnku.com/articles/10885/full-use-of-jwt在auth验证的时候jwt默认的加密方式不是md5,现在简单的修改为md5Laravel 的 Auth::attempt () 初探及修改 bcrypt 验证为 MD5https://learnku.com/articles/5963/toggle-laravel-log...原创 2019-03-19 18:52:11 · 925 阅读 · 0 评论 -
php接口返回类
&lt;?php/** * 接口统一返回类 * User: yonggang.qiao &lt;helloqyg@gmail.com&gt; * Date: 2018/10/12 * Time: 17:27 */class Returns{ const ERROR = -1; const WAIT = 0;...原创 2019-03-01 17:06:50 · 2018 阅读 · 0 评论 -
laravel hasOne hasMany模型关联查询
hasOne public function findByRandAll() { return $this->where("status", '<>', '0') ->inRandomOrder() ->with(['userinfo:uid,nickname,avatar']) ...原创 2019-01-18 19:25:21 · 4261 阅读 · 0 评论 -
工作中关于项目安全问题的处理
接口增加签名验证,通常的做法是通过param排序+时间戳+secret签名验证,防止离职的开发人员进行接口攻击mysql开启 safe-updates , 当做DML操作忘记加where条件时,mysqld服务器是不会执行操作的,防止批量误操作小程序或者app端登录增加token过期操作,也是防止非法人员知道token后进行非法操作。服务器禁止root用户登录,给每个人开发人员分配一个用...原创 2019-01-08 15:05:08 · 828 阅读 · 0 评论 -
微信小程序处理带表情的昵称入库
方案一:升级到MySQL5.5+版本,支持utf8mb4编码格式,然后执行下面的变更语句:ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;这样可以完整保存用户昵称,但系统升级风险较大,需要多方面测试。方案二:另外一个方法更容易,就是去除非3字节的特殊符号,$nickname = preg_replac...原创 2018-12-13 20:07:16 · 2325 阅读 · 0 评论 -
laravel开启sql日志记录并且记录增删改到数据库
在AppServiceProvider.php中的boot方法中添加如下代码 即可public function boot(){ \DB::listen(function($query) { $tmp = str_replace('?', '"'.'%s'.'"', $query-&gt;sql); $tmp = vsprintf($tmp, $que...原创 2018-12-05 18:38:26 · 3286 阅读 · 0 评论 -
php通过经纬度计算距离
php通过经纬度计算距离plng plat lat lng为参数 // 计算商家位置与用户位置距离 $lat = ''; //lat $lng = ''; //lng $radLat1 = deg2rad($lat); //deg2rad()函数将角度转换为弧度 $radLat2 = deg2rad($plat); ...原创 2018-11-26 10:06:28 · 853 阅读 · 0 评论 -
PHP curl或file_get_contents下载图片损坏或无法打开
通过curl或者file_get_contents获取抓取远程图片并且保存到本地,发现损坏了很多图片,比如访问https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg是可以访问到图片的,但是curl或者file_get_contents时图片下载下来了却损坏了,就类似这样:原因是图片被giz...原创 2018-11-15 17:17:53 · 4803 阅读 · 0 评论 -
composer安装
Linux系统:curl -sS http://install.phpcomposer.com/installer | php或者:php -r "readfile('http://install.phpcomposer.com/installer');" | php三.全局安装在linux系统中:只需将composer.phar 复制到 /usr/local/bin...原创 2018-11-02 14:17:54 · 129 阅读 · 0 评论 -
编译安装php
yum安装php方式yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml参考:http://www.php.cn/...原创 2018-10-30 11:39:11 · 190 阅读 · 0 评论 -
composer指令
更新composer到最新版本composer self-update --preview清除缓存composer clearcache原创 2018-10-27 16:17:55 · 173 阅读 · 0 评论 -
laravel 联合查询
$data = $this->where($filter) ->select('xiu_score_log.*','xiu_user_customer.name','xiu_user_customer.phone') ->leftJoin('xiu_user_customer', 'xiu_score_log.u_id', '='...原创 2018-10-18 20:30:34 · 5302 阅读 · 0 评论 -
RabbitMq入门
看了下RabbitMq的一篇入门文章,写的挺不错 易懂,还没测试,最近几天有时间实现一下。 参照url:https://www.cnblogs.com/miketwais/p/RabbitMQ.html 使用案例讲解 : https://www.cnblogs.com/saltlight-wangchao/p/6214334.html...原创 2018-09-11 14:19:28 · 207 阅读 · 0 评论 -
以后缀名为分类把文件分别存储到数组里(朋友的一道简单面试题)
<?php$dir = scandir('C:\Users\Administrator\Desktop\images');echo '<pre>';// print_r($dir);$gif = array();$png = array();$jpg = array();foreach ($dir as $key => $value) { $sub ...原创 2018-09-04 19:14:23 · 223 阅读 · 0 评论 -
php程序员的学习路线,以及进阶篇
# PHP interview best practices in China如果你现在处于以下几种状态,本资料非常适合你:* 准备换工作,不知道从哪开始准备* 技术遇到瓶颈,不知道该学什么* 准备学 PHP,但不知道领域有多深## 基础篇* 了解大部分数组处理函数* 字符串处理函数(区别 mb_ 系列函数)* & 引用,结合案例分析* == 与 === 区别...原创 2018-08-29 11:38:01 · 4532 阅读 · 2 评论 -
php webSocket
<?phpclass SocketChat{ private $timeout = 60; //超时时间 private $handShake = False; //默认未牵手 private $master = 1; //主进程 private $port = 9505; //监听端口 private $address = '127.0....原创 2018-07-30 10:00:34 · 628 阅读 · 0 评论 -
启动php没发现9000端口,nginx配置问题
原本的配置应该是这样,但是通过netstat -ntpl并没有发现9000端口就需要把这段代码 location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fa...原创 2018-07-26 14:36:01 · 8565 阅读 · 2 评论 -
nginx配置php pathinfo
现在php.ini里开启pathinfo 在nginx配置文件里添加#配置pathinfo if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; ...原创 2018-07-26 13:19:01 · 1230 阅读 · 0 评论 -
redis.so扩展安装
第一步:下载phprediswget https://github.com/phpredis/phpredis/archive/develop.zipgithub所在位置: https://github.com/phpredis/phpredis下载完毕进行解压第二步:编译php扩展在解压后的目录中执行usr/local/php/bin/phpize或p...原创 2018-07-26 09:56:33 · 3299 阅读 · 0 评论 -
php加密解密并且每次都变化,有效期等等。
php 加密解密,并且每次都会变化 有效期时间等等<?php // $string: 明文 或 密文// $operation:DECODE表示解密,其它表示加密// $key: 密匙// $expiry:密文有效期function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { // 动...原创 2018-07-06 14:40:04 · 952 阅读 · 0 评论 -
打卡分钱项目,关于每个人分钱的方法
<?php //人数$member = 50;//奖金池$moneyPool = 10000; /** * @param $member 人数 * @param $moneyPool 奖金池 * @return array 钱数 */function test($member,$moneyPool){ $a = array();...原创 2018-07-03 15:39:39 · 1822 阅读 · 0 评论 -
docker利用compose搭建lnmp环境
安装docker和compose就不说了第一步:创建Dockerfile:version: "2"services: php: image: php:7.2.3-fpm networks: - lnmp volumes: - ./web:/web environment: - TZ=Asia/Shangha...原创 2018-07-01 20:42:10 · 2477 阅读 · 2 评论