PHP
我是程序原
日常打卡
展开
-
PHP根据二维数组中某个字段排序
借助PHP的函数实现,代码如下:$data = array( array( 'ad_src' => 'src4', 'ad_url' => 'url4', 'ad_order' => 4 ), array( 'ad_src' => 'src3', '原创 2021-01-08 10:57:50 · 183 阅读 · 1 评论 -
PHP实现页面跳转的三种方式
PHP实现页面跳转有三种方式,我们一一介绍,推荐使用第一、三方式。1.借助PHP的header()函数实现。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。注意:1.location和":"号间不能有空格,否则不会跳转。2.在用header前不能有任何的输出。3.header后的PHP代码还会被执行。4.部分浏览器存在兼容性问题,例如:IE浏览器如果输出的内容字节太小(小于512字节),那么就会被忽略。在使用时需要测试多个浏览器。<?p原创 2020-12-23 10:59:05 · 17232 阅读 · 0 评论 -
微信H5登录实现代码(PHP)
微信登录分为H5、PC和移动应用(IOS\安卓)其中H5借助微信公众号实现,接口文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.htmlPC和移动应用借助微信开放平台实现,PC需要创建网站应用、移动应用需要创建移动应用。网站应用接口文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeC原创 2020-12-22 15:54:03 · 1515 阅读 · 0 评论 -
常用正则表达式梳理总结
一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$有1~3位小原创 2020-12-15 11:20:48 · 78 阅读 · 0 评论 -
判断当前设备是否为移动端(PHP)
判断当前设备是否为移动端,代码如下: /* * 判断是否为手机端 */ public static function check_wap(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { return true; } //如果via信息含有wap则一定是移动设备,部分服务商会原创 2020-12-02 15:34:49 · 425 阅读 · 0 评论 -
Linux安装swoole及配置流程
1.下载安装包:http://pecl.php.net/get/swoole-4.4.7.tgz2.解压:tar -zxvf swoole-4.4.7.tgz3.安装cd swoole-4.4.7phpize./configure./configure --with-php-config=/usr/local/php/bin/php-configmake && make install4.在php.ini 文件中加入扩展 extension=sw.原创 2020-11-25 17:46:04 · 295 阅读 · 0 评论 -
《算法图解》总结及实战
一、算法简介与二分查找法开启算法探索之路之前,首先要了解的概念:1.大O表示法:用来表示算法的速度有多快。这里的速度并非指时间,而是增速。 常见的大O运行时间:(n表示操作数) O (log n ),也叫对数时间 ,这样的算法包括二分查找。 O (n ),也叫线性时间 ,这样的算法包括简单查找。 O (n * log n ),这样的算法包括快速排序。 O (n ^2 ),这样的算法包括选择排序。 O (n !),也叫阶乘时间(n!...原创 2020-11-20 15:58:35 · 638 阅读 · 0 评论 -
Gitlab提交代码同步到服务器
实现:向Gitlab提交代码的时候,通过钩子同步到测试服务器。总共分两步,代码和Gitlab钩子配置第一步代码部分:<?php/** * Created by PhpStorm. * User: Genghai_Y * Date: 2020/9/29 * Time: 17:13 */$project = trim($_GET['project']);$dev = trim($_GET['dev']);if (empty($project)) { die('pr原创 2020-11-18 17:00:48 · 1854 阅读 · 0 评论 -
Sphinx和Coreseek实现模糊查询
问题:使用Sphinx和Coreseek搜索关键词发现搜索出来数据还没有mysql模糊查询的数据多。。。排查之后发现问题出在配置的参数上,代码如下:<?phprequire_once('sphinxapi.php');$key = isset($_GET['keys'])?$_GET['keys']:'一个';$page = isset($_GET['page'])?$_GET['page']:1;$limit = $page * 10;$sphinx = new SphinxCl原创 2020-11-13 10:18:24 · 237 阅读 · 0 评论 -
Sphinx如何实现复杂Sql查询
Sphinx可以实现复杂的Sql语句,具体操作如下:比如,要实现的Sql语句为:select * from new_notes where ((status=100 &tmp_edit_status = 1) or status = 200 or status = 800 ) and title LIKE '%测试%' and tmptype = 1 and create_time > 1000 and create_time < 9999999 order by create_t.原创 2020-11-13 10:17:42 · 306 阅读 · 0 评论 -
Sphinx和中文分词Coreseek的使用详解配置
一、需求 实现文章标题中或分类(甚至文章内容)包含搜索词的文章,按照搜索词出现的频率的权重展示。二、环境 Nginx+PHP+Mysql(系统Centos7)。三、安装#1.安装依赖yum -y install make gcc gcc-c++ libtool autoconf automake imake mariadb mariadb-server mariadb-devel libxml2-devel expat-devel#2.下载软件包原创 2020-11-12 16:06:56 · 375 阅读 · 0 评论 -
Nginx如何配置多个域名跨域
Nginx配置域名跨域单个域名:location ~ .*\.(php|php5)?$ { add_header 'Access-Control-Allow-Origin' 'http://image1-oss.xxx.com'; add_header 'Access-Control-Allow-Credentials' 'true' always; fastcgi_pass 127.0.原创 2020-11-12 16:05:23 · 1830 阅读 · 3 评论 -
PHPExcel导入导出常用方法总结
最近公司后台管理系统需求,要用PHP导出excel表格数据,所以特整理了一下常用的方法供大家参考:PHPExcel扩展包地址:https://github.com/wanqianworld/phpexcel-1.8大致的分为几个部分:一、导出的方法及步骤1.引入PHPExcel文件:require_once("../Classes/PHPExcel.php");2.实例化PHPExcel:$ObjPHPExcel = new PHPExcel();3.获取当前工作sheet:$ObjP原创 2020-11-12 16:04:14 · 948 阅读 · 0 评论 -
友盟推送消息踩坑及处理(PHP)
公司的客户端的推送选用友盟推送,但是友盟的官方文档描述很少,对新手很不友好,所以特写此采坑纪录,废话不多说上代码。公司业务只涉及单播和广播。所以只提供了单播和广播,业务拓展的话会补充其余部分。消息推送代码:(页面加载文件均来自友盟代码包) 1 <?php 2 require_once(dirname(__FILE__) . '/' . 'umengmsg/notification/android/AndroidBroadcast.php'); 3 require_once(dir原创 2020-11-12 16:03:48 · 733 阅读 · 0 评论 -
微信第三方平台获取ticket报错解决方法(PHP)
问题:微信开发小程序消息加解密,官方给出的dome中使用正常,最近项目的PHP版本升级到了7.1发现接收消息不能解密了,最后查了日志又查了各种资料发现Mcrypt函数php7.1已经被废弃;解决方法:在Prpcrypt类中使用openssl代替Mcrypt。代码如下:官方给的代码:/*** 对密文进行解密* @param string $encrypted 需要解密的密文* @return string 解密得到的明文*/public function decrypt(...原创 2020-11-11 14:20:51 · 3427 阅读 · 2 评论 -
PHP八大设计模式
设计模式单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。单例模式$_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用 ::操作符只能访问静态变量和静态函数 new对象都会消耗内存 使用场景:最常用的地方是数据库连接。 使用单例模式生成一个对象后, 该对象可以被其它众多对翻译 2020-11-11 14:05:05 · 130 阅读 · 0 评论 -
PHP魔术常量和魔术方法详解
一、魔术常量__LINE__ 文件中的当前行号。__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。__FUNCTION__ 函数名称(PH原创 2020-11-11 13:47:18 · 387 阅读 · 0 评论 -
PHP获取文件扩展名五种以上的方法和注释
在PHP面试中或者考试中会有很大几率碰到写出五种获取文件扩展名的方法,下面是我自己总结的一些方法$file = ‘需要进行获取扩展名的文件.php’;//第一种,根据.拆分,获取最后一个元素的值function getExt1{return end(explode(".",$file);)}//第二种,获取最后一个点的位置,截取function getExt2{return substr($file,strrpos($file,'.')+1);}//第三种,根据.拆分,获取最后一个元原创 2020-11-11 13:43:22 · 91 阅读 · 0 评论 -
PHP curl非阻塞代码详解
在项目同步微信素材库时发现请求等待时间很长,排查之后发现是crul的问题,php中curl是阻塞的,从而导致时间过长,针对这个问题对代码进行了优化,代码如下:// PHP代码function Post_curl($urls = array(),$callback = '', $post_data = array()){ $response = array(); if (empt...原创 2018-12-07 15:34:37 · 2381 阅读 · 0 评论