php
华尔街之猫
我不停地奔跑,只为了追上那个曾经被寄予厚望的自己!
展开
-
PHP短链接url还原成长链接
php 短链接还原成长链接,短链接转成长链接原创 2024-01-11 14:15:46 · 842 阅读 · 0 评论 -
整数和字符串比较的坑
num1 后的值再跟$num2比较。原创 2023-09-27 17:22:53 · 187 阅读 · 0 评论 -
php array_column 常见用法,三种用法,四种用法
php array_column的常见多种用法原创 2022-09-19 15:28:23 · 9613 阅读 · 0 评论 -
php 2次foreach循环的坑
$list = [[‘id’ => 1, ‘name’ => ‘AA’, ‘age’ => 10],[‘id’ => 2, ‘name’ => ‘BB’, ‘age’ => 20],[‘id’ => 3, ‘name’ => ‘CC’, ‘age’ => 30],[‘id’ => 4, ‘name’ => ‘DD’, ‘age’ => 40],];echo “”;echo “>>>>>>原创 2022-04-07 15:15:16 · 587 阅读 · 0 评论 -
使用PhpSpreadsheet 导入wps编辑过的excel文件内存溢出问题
问题:用 office excel新建了一个.xlsx文件,发给客户后,客户用wps编辑过,导入系统出现内存溢出,导致整个系统崩溃。注:一定要记得加 $reader->setReadDataOnly(TRUE);$upload_file = $_FILES['file']['tmp_name']; $ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); if ($ext原创 2021-11-09 13:49:23 · 1098 阅读 · 0 评论 -
PHP 批量更新多个字段
有一张表users,存在字段id(主键)、name、age现需要一条sql批量更新不同的字段,也就是UPDATE `users` SET `name` = (CASE id WHEN '1' THEN '张三A' WHEN '3' THEN '王五A' WHEN '4' THEN '小明A' end), `age` = (CASE id WHEN '1' THEN '15' WHEN '3' THEN '16' WHEN '4' THEN '17' end) where id in(1,3,4)原创 2021-10-22 14:32:46 · 666 阅读 · 0 评论 -
PHP 读取大文件 和 插入数据库
1原创 2021-04-13 15:33:59 · 452 阅读 · 0 评论 -
PHP 设计模式系列 —— 简单工厂模式、工厂方法模式、抽象工厂模式
简单工厂模式 定义定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道其实现过程缺点系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,同样破坏了“开闭原则”;在产品...原创 2020-01-15 11:02:34 · 374 阅读 · 0 评论 -
window 修改composer 安装的 php 版本
开始安装composer 的时候,选定的php 版本为v7.2.1,随着时间的推移,很多composer包需要支持php v7.2.5以上才能安装cd 新版本的php安装路径:D:\phpstudy_pro\Extensions\php\php7.2.9nts>执行命令composer.phar update接着就可安装composer包了...原创 2020-12-04 23:37:15 · 3543 阅读 · 0 评论 -
1核2G 并发 2核4G 并发 、服务器并发测试
好奇1核1G ,2核4G 服务能抗多少并发, 上网一直没找到合适的答案,局限于经济问题,也无法实践。终于跟朋友借了几台服务器测试:压测工具 :ab工具注意:压测环境带宽要 >= 项目服务器带宽原生php 输出一串字符串:<?php$temp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';$str = '';for ($i = 0; $i < 22; $i++) { $str .= $temp;}echo json_原创 2020-11-11 18:18:09 · 7493 阅读 · 3 评论 -
php 手机号 正则表达式
php 最新正则表达式判断是否为手机号,网上大部分都漏了139开头的号码段 function isMobile($val) { return preg_match("/^1[3456789]{1}\d{9}$/", $val); }原创 2020-10-29 15:28:53 · 1786 阅读 · 0 评论 -
php 微信支付分 教程
微信支付分是比较新的一种支付方式,针对特殊场景,相关教程比较少。<?php/** * 微信支付分 */class WxPayscore{ private $wxConfig = [ 'appid' => '',//公众号appid 'appSecret' => '',//公众号秘钥 'mch_id' => '',//商户号 'service_id' => '',//商户号服务id原创 2020-10-28 10:03:53 · 1199 阅读 · 0 评论 -
php curl 上传图片到服务器
php curl上传图片需要用到CURLFile 对象 $url = 'http://xxx.com'; $name = 'file'; if (!isset($_FILES[$name])) { return $this->error('请上传文件'); } // 创建一个 cURL 句柄 $ch = curl_init($url); // 创建一个 CURL原创 2020-10-14 13:32:44 · 443 阅读 · 1 评论 -
opencart 发送邮件报错 Uncaught exception 'Exception' with message 'Error: MAIL FROM not accepted from ser
Uncaught exception ‘Exception’ with message ‘Error: MAIL FROM not accepted from server!’原创 2019-05-30 13:36:06 · 3020 阅读 · 0 评论 -
opencart vqmod 修改核心文件
opencart通过vqmod可以在不修改核心代码的情况下修改功能。添加一个Short name短描述字段代码结构:源码地址:https://github.com/YiHongZeng/opencart-vqmodvqmod使用参考文档:https://github.com/vqmod/vqmod/wiki/Examples...原创 2019-05-04 16:54:18 · 303 阅读 · 0 评论 -
opencart安装vqmod
使用opencart一段时间,发现一个好用的工具:vqmod。什么是vqmod?vQmod 全称是 Virtual File Modification System ,又称快速虚拟MOD。是一个虚拟覆盖系统的设计,以避免原有系统核心文件被修改。具体了解可以去网上搜索1:下载准备软件opencart使用v3.0.2vqmod 使用 v2.6.3-opencart (https://gith...原创 2019-03-03 21:55:15 · 1297 阅读 · 0 评论 -
PHP 浮点数高精度运算
概述记录下,工作中遇到的坑 ...关于 PHP 浮点数运算,特别是金融行业、电子商务订单管理、数据报表等相关业务,利用浮点数进行加减乘除时,稍不留神运算结果就会出现偏差,轻则损失几十万,重则会有信誉损失,甚至吃上官司,我们一定要引起高度重视!浮点数运算的“锅”//加$a = 0.1;$b = 0.7;$c = intval(($a + $b) * 10);echo $c."<br>";//输出:7//减$a = 100;$b = 99.98;$c = ...转载 2020-08-25 17:49:03 · 688 阅读 · 0 评论 -
Laravel 5 项目优化
说明 原文(https://learnku.com/articles/2020/ten-laravel-5-program-optimization-techniques)性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论。这里是简单的列表:配置信息缓存artisan config:cache 路由缓存artisan route:cache 类映射加载优化art...原创 2020-08-20 14:39:13 · 399 阅读 · 0 评论 -
php 常用工具判断函数
正则验证手机号码function isMobile($val) { return preg_match("/^1[3456789]{1}\d{9}$/", $val); }19开头的为新号码段,网上抄的手机号正则喽了19xxx号码段原创 2020-08-14 13:09:53 · 226 阅读 · 0 评论 -
PHP学习进阶
## 基础篇熟悉常用数组处理函数// 数组元素添加移除array_pusharray_poparray_unshiftarray_shift// 数组自定义操作array_maparray_walkarray_reduce// 多数组操作array_mergearray_diffarray_intersect// 其他高频使用array_key_existsin_arrayarray_uniquearray_sumis_array// 其他array_k转载 2020-07-17 18:08:07 · 553 阅读 · 0 评论 -
PHP中被忽略的性能优化利器:生成器yield
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。官方解释:生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现Iterator接口的方式,性能开销和复杂性大大降低。生成器允许你在foreach代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会使你的内存达到上限,或者会占据可...转载 2020-07-16 17:06:05 · 120 阅读 · 0 评论 -
PHP超低内存遍历目录文件和读取超大文件的方法
这不是一篇教程,这是一篇笔记,所以我不会很系统地论述原理和实现,只简单说明和举例。前言我写这篇笔记的原因是现在网络上关于 PHP 遍历目录文件和 PHP 读取文本文件的教程和示例代码都是极其低效的,低效就算了,有的甚至好意思说是高效,实在辣眼睛。这篇笔记主要解决这么几个问题:PHP 如何使用超低内存快速遍历数以万计的目录文件?PHP 如何使用超低内存快速读取几百MB甚至是GB级文件?顺便解决哪天我忘了可以通过搜索引擎搜到我自己写的笔记来看看。(因为需要 PHP 写这两个功能的情况真的转载 2020-07-16 16:20:25 · 403 阅读 · 0 评论 -
php 点 连接符,新手易犯错点
很多时候我们需要将几个字符串连接起来显示,在PHP中,字符串之间使用 “点” 来连接,也就是英文中的半角句号 " . " 。" . " 是字符串连接符,可以把两个或两个以上的字符串链接成一个字符串。例如:echo 'A' . 'B' . 'C'; // 输出ABCecho 'A' . $str1 . $str2; //Aabc123点连接符使用起来很简单,但实际项目中,经常还是看到有些同事犯错,看一个例子:<?phpini_set('display_errors', 1);error_r原创 2020-06-21 23:39:16 · 847 阅读 · 0 评论 -
php 生成公钥和私钥
<?php$opensslConfigPath = "D:\phpstudy_pro\Extensions\Apache2.4.39\conf\openssl.cnf";$config = array( "digest_alg" => "sha512", "private_key_bits" => 2048, "private_key_type" ...原创 2020-04-15 23:05:39 · 1062 阅读 · 0 评论 -
Laravel 中大型项目架构
Laravel 的中大型專案架構只有 MVC 是不夠的,我們需要更完整的專案架構ContentsVersion Controller 過於肥大 Model 過於肥大 中大型專案架構 建立目錄 Repository Service Presenter 單元測試 Conclusion初學者學習 Laravel 時分兩種,一種是乖乖的將程式填入 MVC 架構內...原创 2020-03-11 17:54:06 · 2662 阅读 · 0 评论 -
php自定义函数实现10进制转2进制
1、php函数decbin(10)2、自定义函数//php实现进制转换function dec2bin($num){ if ($num == 0) return 0; $flag = array(); while ($num != 0) { array_push($flag, $num % 2); $num = (int)($nu...原创 2020-03-04 17:10:37 · 494 阅读 · 0 评论 -
php浮点数计算精度的坑
$a = 0.58;$b = 100;echo $a*$b,'<br/>'; // 58$a = 0.58;$b = 100;echo intval($a*$b),'<br/>'; // 57$a = 0.57;$b = 100;echo intval($a*$b),'<br/>'; // 56原创 2020-08-14 11:53:26 · 271 阅读 · 0 评论 -
php 过滤器 filter_var
PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。ID 名称 描述 FILTER_CALLBACK 调用用户自定义函数来过滤数据。 FILTER_SANITIZE_STRING 去除标签,去除或编码特殊字符。 FILTER_SANITIZE_STRIPPED "string" 过滤器的别名。 FILTER_SANITIZE_ENCO...原创 2020-01-14 11:37:06 · 272 阅读 · 0 评论 -
php 调用java方法
使用php调用java的类库安装java环境 (已安装忽略)https://blog.csdn.net/qq_24935119/article/details/103969727下载JavaBridge.jar,Java.inchttp://php-java-bridge.sourceforge.net/pjb/download.php运行javabridgejava ...原创 2020-01-14 11:19:34 · 448 阅读 · 0 评论 -
php 浏览器导出csv
<?php /** * 导出csv格式 * @param $filename * @param $data */ public function exportCsv($filename,$data){// $data = [// ['val1','val2','val3'],// ...原创 2020-01-09 22:01:34 · 350 阅读 · 0 评论 -
php 枚举类代替hard code代码
新建OrderEnum枚举类在控制器调用原创 2020-01-09 16:32:54 · 289 阅读 · 0 评论 -
PHP 二分查找算法
1原创 2020-01-03 11:35:37 · 342 阅读 · 0 评论 -
php 二维数组排序
$arr = [ ['name'=>'M','age'=>6], ['name'=>'E','age'=>5], ['name'=>'A','age'=>1], ['name'=>'C','age'=>3], ['name'=>'B','age'=>2], ['name'=>'D',...原创 2019-12-27 13:02:02 · 228 阅读 · 0 评论 -
PHP 抓取远程图片
function getImg($url = "", $filename = ""){ //去除URL连接上面可能的引号 //$url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url ); $curl = curl_init(); $fp = fopen($filename, 'wb'); c...原创 2019-11-05 08:46:43 · 539 阅读 · 0 评论 -
php命名空间
定义一个Order类<?phpnamespace app;class Order{ public function __construct() { echo 'order','<br/>'; }}使用这个类<?phpspl_autoload_register();echo 'namespace index',"&...原创 2019-10-29 22:49:14 · 174 阅读 · 0 评论 -
PHP intval 转换浮点数精度
在 PHP 和其他一些语言都会存在这个问题,转换浮点数为整数的时候会出现精度丢失,如下:$num = 19.99;echo intval($num * 100);// 输出 1998解决办法:1.转换成字符串再 intvalecho intval(strval($num * 100));// 输出 19992.使用 round 函数替代 floatvalecho...原创 2019-10-12 23:55:35 · 480 阅读 · 0 评论 -
php curl
curl post json格式数据 function curlPost($url, $data = array()) { $data = array("name" => "TEST", "age" => "20"); $data_string = json_encode($data); $ch = curl_init(...原创 2019-07-30 12:08:07 · 157 阅读 · 0 评论 -
php 字符串排序
字符串按照ASCII码顺序排序$str = '123HelloWord321';$arr = str_split($str);asort($arr);$str = implode('',$arr);echo $str;排序后输出112233HWdelloor原创 2019-07-12 12:08:03 · 4594 阅读 · 3 评论 -
php 新手须知的一些好用函数
array_column 提取二维数组,函数的第三个参数为新数组的key$arr = [ ['id'=>'1','name'=>'张三'], ['id'=>'2','name'=>'李四'], ['id'=>'3','name'=>'王五'],];$arr = array_column($arr,'name','id')...原创 2019-07-06 00:45:41 · 100 阅读 · 0 评论 -
getcwd 、__DIR__ 、__FILE__ 、dirname(__FILE__)区别
项目根目录learn,入口文件index.php。index.php引入Test.php:<?phprequire_once 'class/Test.php';getPath();分别echo:<?phpfunction getPath(){ echo 'getcwd:'.'<br/>'; echo getcwd().'<br/&g...原创 2019-07-06 00:29:34 · 621 阅读 · 0 评论