PHP 程序
天下皆白_唯我独黑
爱我所爱,恨我所恨,墨眉无锋,似剑非攻。
展开
-
阿里云短信PHP集成api类
无需安装sdk扩展包,直接引入类即可使用。原创 2024-07-17 16:42:25 · 401 阅读 · 0 评论 -
php 多关键词匹配
【代码】php 多关键词匹配。原创 2024-01-10 13:41:04 · 516 阅读 · 0 评论 -
php redis 实现缓存过期回调监听
首先需要配置redis.conf配置参数【notify-keyspace-events】因为开启键空间通知功能需要消耗一些 CPU , 所以在默认配置下, 该功能处于关闭状态。可以通过修改 redis.conf 文件, 或者直接使用 CONFIG SET 命令来开启或关闭键空间通知功能:notify-keyspace-events 的参数可以是以下字符的任意组合, 它指定了服务器该发送哪些类型的通知:开启后打开两个面包一个开启监听一个设置过期时间的缓存下面是例子,只是一部分,我们只需要php脚本挂起这个方法原创 2022-06-16 00:17:33 · 1639 阅读 · 6 评论 -
php pcntl_fork 创建多个子进程解析
pcntl_fork — 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0原创 2022-06-02 01:00:02 · 1573 阅读 · 0 评论 -
php使用curl_exec 获取响应头存在多个HEADER问题解决
前言:近期在接一个第三方支付的时候,遇到一个比较头大的问题,因为第三方会把部分响应结果放在header里传输,需要从头里取数据后解密使用,我在本地是正常的,但是放到服务器上就一直是失败,因为取不到对应的头部信息,找了很久原因也没能找到具体问题所在,初步还是怀疑服务器的配置信息有些差异,不过对于问题的处理已经有了方案。首先想要获取头信息需要设置以下参数curl_setopt($curl, CURLOPT_HEADER, true); //设置headercurl_setopt 文档官网地址.原创 2022-05-21 18:01:03 · 2338 阅读 · 0 评论 -
PHP redis bitmap快速获取全部数据
/** * 获取bitmap * @date 2021/11/12 * @param $key * @return array */function get_bitmap_all($key){ $result =[]; $value = $redis->get($key); if($value) { /** * 解包(redis返回来的是二进制字符串,我们需要把它解成对应的数字) * 关于unpack的用法,如.原创 2021-11-12 17:48:16 · 1937 阅读 · 0 评论 -
php 签名验证方法
$a1=array("red","green","blue","yellow");$a2=array("red","green","blue1");/** * Array([data] => Array([0] => red[1] => green[2] => blue[3] => yellow)[sign] => 2308BCF74D35E6A0A2AAE25ADD85EE51) */$res = createKSortSign($.原创 2021-04-09 16:21:05 · 598 阅读 · 0 评论 -
php 字符串截取隐藏
/** * 字符串截取隐藏 * @param $string * @param $limit * @param string $etc * @param string $charset * @return string */function cutSubstring($string, $limit, $etc = '...', $charset = 'utf-8'){ if (mb_strlen($string, $charset) > $limit) { .原创 2021-04-09 16:15:31 · 159 阅读 · 0 评论 -
php 制作自己的ip地址池 爬虫做自己的ip代理池
1、要找一个免费能打开的ip代理网址https://www.xicidaili.com/nt/12、上代码<?php/** * php制作自己的ip池 * User: * Date: 2019/3/29 * Email: */ini_set('date.timezone', 'Asia/Shanghai'); //定义时间地点header("Content-t...原创 2019-03-29 11:51:17 · 3645 阅读 · 0 评论 -
Mysql update语句修改blob字段之PDO execute的运用
BLOB(binary large object),二进制大对象,是一个可以存储二进制文件的“容器”。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。本文介绍php操作的方式blob类型数据可以直接当成字符串类型写入和修改如下写法$blob; //假设这是二进制数据blob$sql = "update `table` set `field` = '".$blob...原创 2019-05-14 12:36:48 · 3425 阅读 · 0 评论 -
PHP shell_exec 直接文件调起linux命令
使用函数:shell_exec—通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。shell_exec('php -f user_clean_perform.php &');官方文档:https://www.php.net/manual/zh/function.shell-exec.phplinux命令中,执行一个程序,后面加上&, 代表的意思...原创 2019-05-14 13:16:40 · 861 阅读 · 0 评论 -
数据清理流程记录与心得
一、web处理1、查询符合条件用户2、点击清理操作,把符合条件的用户加入log表type=03、shell_exec 启动清理任务脚本后台清理二、脚本处理4、查询log表 type需要清理的用户5、清理符合要求的自身表信息6、循环查询剩余未清理的用户的关联信息,比如AB是好友关系,清理了A,需要剔除用户B中存在的A的关联信息7、筛选有对应关系的信息做清除8、把处...原创 2019-05-16 14:18:11 · 886 阅读 · 0 评论 -
Redis 主从与哨兵(Sentinel)监控之PHP中使用
前言:在哨兵服务搭建的redis主从缓存使用php连接的方式不是直接去连redis地址,而是连接哨兵服务,通过哨兵获取到redis当前主服务器。相关知识:predis, redis,Sentinel1、建一个Sentinel使用类,或者使用predis类库:<?php/** * redis php哨兵的使用 * User: * Date: 2019/7/1 * Em...原创 2019-07-02 10:39:46 · 1753 阅读 · 0 评论 -
PHP 生成随机小数,并保存小数点后几位
/** * 获取随机小数保存小数点后6位 * @param int $min 最小值 * @param int $max 最大值 * @return string */ function randomFloat($min = 0, $max = 1) { $num = $min + mt_rand() / mt_...原创 2019-07-25 15:55:54 · 1172 阅读 · 0 评论 -
PHP 加Redis 根据经纬度实现附近的人查询功能
1、业务需求:用户信息存储经纬度,根据某个经纬度查询附近的人,已圆为中心,可根据距离从近到远排序。2、使用技术:php,redis geo(geoadd,georadius)3、相关文档:http://redisdoc.com/geo/georadius.html实现:<?php/** * @author * @since */header("Content-ty...原创 2019-07-22 17:18:46 · 807 阅读 · 0 评论 -
PHP file流数据文件上传接收接口类,可上传视频图片等类型文件
<?php/** * 视频上传 * User: * Date: 2019/7/20 * Email: *//** * @param $file 数据流 * @param $type_arr 文件类型 * @param $folder 文件分类 * @return array */function file_upload($file, $type_arr, $f...原创 2019-07-27 16:44:24 · 2139 阅读 · 0 评论 -
PHP 识别文件真实类型,公共方法类。
1、产生原因:前几天服务器的上传图片的文件公共方法被人家上传了一些木马文件,有些文件的真实后缀被改变了所以判断不了2、网上找了一个判断文件真实类型的方法<?phpini_set('display_errors',1); //错误信息 ini_set('display_startup_errors',1); //php启动错误信息 error_r...原创 2019-08-19 11:40:50 · 646 阅读 · 0 评论 -
PHP curl 上传文件视频 方法 CURLFile
(PHP 5 >= 5.5.0, PHP 7)CURLFile::getFilename—获取被上传文件的 文件名publicCURLFile::getFilename(void) :string类:CURLFile()打开文件realpath() 获取文件全路径/** * @param $file 文件相对路径 * @par...原创 2019-08-11 14:52:18 · 2130 阅读 · 2 评论 -
php 获取用户访问真实IP方法
php获取用户ip原创 2019-03-26 16:09:15 · 4901 阅读 · 0 评论 -
PHP 使用ssh2模块调用命令行
1.安装ssh2模块2.代码/** * @param $sship 连接ip地址 * @param $port 端口号 * @param $user 用户名 * @param $pass 密码 * @param $cmd 调用命令 如:"/usr/local/php/bin/php -f /home/index_error....原创 2019-02-27 10:58:37 · 1536 阅读 · 0 评论 -
PHP 获取用户真实的ip
//获取真实的ip function getIP() { $ip=''; if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip ...原创 2018-12-25 17:58:57 · 1782 阅读 · 0 评论 -
PHP 开发规范 PHP-FIG
主地址:https://psr.phphub.org/子地址:基本编码规范: https://laravel-china.org/topics/2078/psr-specification-psr-1-basic-coding-specification编码风格规范:https://laravel-china.org/topics/2079/psr-specification-psr-2-codi...转载 2018-05-10 14:39:50 · 1541 阅读 · 0 评论 -
PHP 多服务器多线程同步推送思想
为什么要使用多线程,效率翻倍提升,节省时间。第一步: 我们需要有主要推送任务的核心脚本,这里我叫做-推送脚本。第二步:我们需要有一个任务的启动器,也就是一个开启多线程的脚本,主要实现是链接多个服务器启动各个服务器上的推送脚本,这里我叫做-启动脚本。第三步:为了提高效率我们可能会用redis之类的缓存数据库而提高读取数据的速度,为了避免重复推送,推送的用户最好使用队列存储。实现:我们可以吧推送脚本分...原创 2018-05-11 14:33:25 · 1390 阅读 · 0 评论 -
PHP 求一段时间内指标值的平均数
如题我们的程序运行过程中每分钟会采集一个整数的数据指标。持续采集n分钟就得到一个有n个元素的整数数组a[n]。现在我们需要一个简单的算法,检测采集到的数据指标中,是否有异常。异常的检测标准是:如果在连续m分钟内的指标的平均值大于w,则说明有异常。输入:数组a[n], 正整数m, 整数w返回:有异常返回 1,没有异常返回 0例如:对于a={1, 5, 1, 3, 2}, m=2, w=2, 返回:1...原创 2018-05-21 11:34:33 · 1847 阅读 · 0 评论 -
PHP 浏览器下载文件
function export_text(){ $xlsName_1 = '123.txt'; //文件名 $xlsName_2 = 'uploads/files/excel/'; //相对路径存放 $xlsName = $xlsName_2 . $xlsName_1; //全路径 if (file_exists($xlsName_2)) { //存在文件清...原创 2018-05-22 18:08:16 · 1918 阅读 · 0 评论 -
PHP 匹配最新手机号运营商
/** * @param $phone * @return int * 手机运营商检测 */ private function phone_check($phone){ $isPhone = "/^1[3-9]\d{9}$/"; if(preg_match($isPhone, $phone)){ ...原创 2018-05-28 11:07:46 · 1894 阅读 · 0 评论 -
PHP 友盟消息推送类
<?php/** * 友盟消息 安卓 IOS 推送类 * */class AlliesClass{ protected $host; //发送地址 protected $app_key; //appkey protected $appMasterSecret; //app secret protected $description; //app...原创 2018-04-17 17:09:44 · 2422 阅读 · 0 评论 -
PHP 压缩文件为zip
从网上复制的代码你往往会发现没有效果,因为ZipArchive :: open()的参数2为ZipArchive :: OVERWRITE的时候,当目标文件已经存在时,程序会生成一个新的同名文件覆盖原来的文件,但是,当这个文件不存在时,ZipArchive ::打开( )将返回数字9,是常量ZipArchive :: ER_NOENT的整数值,错误信息是“没有这样的文件。”。如果想要实现文...转载 2018-07-24 13:57:38 · 1591 阅读 · 0 评论 -
PHP 发送邮件带附件基于phpmailer
1.先从网上下一个phpmailer类包2.引入类 class.phpmailer.php<?php/*** by www.phpddt.com*/header("content-type:text/html;charset=utf-8");ini_set("magic_quotes_runtime",0);require 'class.phpmailer.php';...转载 2018-07-24 16:26:30 · 2269 阅读 · 0 评论 -
PHP 分表导出数据为txt
因为工作需要,导出数据库数据,因为分了10个数据表所以导出比较麻烦,可想而知假如有20个数据表导出是多么麻烦。原理很简单,就是把10个数据表的数据用php整合起来同时导出。代码如下<?php/** * 10个分库导出数据 */ini_set('memory_limit', '1024M'); //扩展php内存header("Content-type: text/html...原创 2018-08-15 14:46:36 · 1961 阅读 · 0 评论 -
Thinkphp3.2.3 关闭Runtime\Logs日志
'LOG_RECORD' => false, // 默认不记录日志'LOG_TYPE' => 'File', // 日志记录类型 默认为文件方式'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR',// 允许记录的日志级别'LOG_EXCEPTION_RECORD' ...转载 2018-10-09 09:31:39 · 4355 阅读 · 0 评论 -
ios12安装描述文件失败问题
阿里云免费SSL证书对IOS描述文件mobileconfig的签名认证方法。https://blog.csdn.net/qq_24909089/article/details/82631627通过Safari浏览器获取iOS设备UDID(设备唯一标识符)http://www.skyfox.org/safari-ios-device-udid.html在ios12系统中,我们访问的下...原创 2018-10-10 13:52:58 · 11360 阅读 · 0 评论 -
PHP 身份证格式验证
1.验证身份证格式是否正确/* * 身份证验证 * @param string $id_card 身份证号码 * @param boolean * */function validation_filter_id_card($id_card){ if (strlen($id_card) == 18) { return idcard_checksum18(...原创 2018-11-05 18:02:02 · 1730 阅读 · 1 评论 -
PHP 字符串翻转实现
1.<?phpheader("Content-Type: text/html; charset=utf-8");//字符串翻转$a = "abcdefgh";function double($str=''){ if($str == '') return 0; for ($i=strlen($str); $i >=0; $i--) { $b .= ...转载 2018-11-16 14:54:08 · 1711 阅读 · 0 评论 -
PHP API接口签名验证,参数签名逻辑实现
数据变化过程:1、原始数据:Array ( [name] => xubin [age] => '17 [sex] => 男 )2、添加反斜杠:Array ( [name] => xubin [age] => \'17 [sex] => 男 )3、排序:Array ( [age] => \'17 [name] => xubin [sex] ...原创 2018-11-21 14:07:42 · 2535 阅读 · 0 评论 -
PHP 数组逆向输出
<?phpheader("Content-Type: text/html; charset=utf-8");function index(){ //数组逆向输出 $data = ['你好','123','好好','谢谢']; $value = []; for($i = count($data)-1; $i>=0; $i--){ ...原创 2018-12-03 11:37:57 · 1928 阅读 · 0 评论 -
PHP curl模拟ip与模拟浏览器header请求方法
一、准备一个接收文件ipb.php1、代码:<?php/** * 接收请求信息写入日志 * Date: 2018/12/25 */ini_set('date.timezone', 'Asia/Shanghai'); //定义时间地点header("Content-type:text/html;charset=utf-8");//获取真实的ipfunction g...原创 2018-12-26 13:31:43 · 3918 阅读 · 0 评论 -
PHPExcel 读取csv xls文件内容
1.从官网下载插件包:https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8读取csv文件:<?php/** * 读取excel csv文件 * Date: 2018/12/25 *///如果编码有问题可以选用下面编码header("Content-type: text/html; charset=GBK");//...原创 2018-12-25 14:22:27 · 2143 阅读 · 0 评论 -
PHP 爬虫模拟登录签到(PC版)
<?php date_default_timezone_set('Asia/Shanghai'); echo "执行开始:-----".date("Y-m-d H:i:s", time())."-----";$user = '13*****2014'; //用户名$pwd = '12****67'; //密码$url = 'https://www.********/ac...原创 2018-04-08 15:47:21 · 1381 阅读 · 3 评论