TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
/
注册
用户名
邮箱

悠悠楠杉

网站页面
搜索到 215 篇与 的结果
2022-12-16

ThinkPHP6使用阿里云短信服务

ThinkPHP6使用阿里云短信服务
使用composer安装sdkcomposer require alibabacloud/sdk 新建一个控制器文件或者放到共用文件<?php namespace app\api\controller; use app\BaseController; use AlibabaCloud\Client\AlibabaCloud; class Sms extends BaseController { public function index() { $phone = input('phone'); if(!$phone){ echo '请传入手机号'; }else if(!$this->validatePhone($phone)){ echo '手机号格式错误'; }else{ $res = $this->sendCode($phone); if($res === true){ ...
2022年12月16日
1,198 阅读
0 评论
2022-11-16

ThinkPHP6使用扩展类库

ThinkPHP6使用扩展类库
在使用thinkphp6时,经常要引用第三方类库,比如upload.php类,在框架根目录下的 extend 目录称为 扩展类库目录,用于存放一些自定义的类,只要符合自动加载的规范(命名空间、类名、文件名),就可以拿来直接使用。1. extend 目录的直接子内容假设在 extend 目录下创建一个 Upload.php 文件,如果是 extend 目录的直接子内容则不需要添加命名空间<?php class Upload { } 此时可以在控制器中直接使用 \Upload 类,特别注意命名空间2. 带层级的类假设在 extend/file 目录下创建一个 Upload.php 文件,此时需要添加命名空间<?php namespace file; class Upload { } 此时可以在控制器中直接使用 \file\Upload 类// 测试 dump(new \Upload()); dump(new \file\Upload());
2022年11月16日
670 阅读
0 评论
2022-11-04

PHP生成文件并下载文件

PHP生成文件并下载文件
<?php header("Content-Type: application/octet-stream"); $filename = "1.txt"; $content = '这里是需要生成文件的内容'; $ua = $_SERVER["HTTP_USER_AGENT"]; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20", $encoded_filename); if (preg_match("/MSIE/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); } else if (preg_match("/Firefox/", $ua)) { hea...
2022年11月04日
615 阅读
0 评论
2022-10-19

PHP cookie加密登录与验证

PHP cookie加密登录与验证
想要简单一点的可以用session,但session是创建会话,也会创建文件,这样文件会越来越多,会有些影响,所以用cookie会更好一点!<?php /** * cookie加密登录与验证 * @param array $userInfo 用户信息 * @param bool $validate 是否为验证或者填入token值验证,默认为false * @param int $expiresTime 过期时间,默认为1天 * @param string $tag token标签,默认为zz_token * @return bool|string */ function zz_login($userInfo, $validate = false, $expiresTime = 1, $tag = 'zz_token') { $salt = zz_salt(); $host = $_SERVER['HTTP_HOST']; if (!$salt) { return false; } if (!$valida...
2022年10月19日
516 阅读
0 评论
2022-10-10

PHP快速导出大量数据到CSV

PHP快速导出大量数据到CSV
<?php //让程序一直运行 set_time_limit(0); //设置程序运行内存 ini_set('memory_limit', '128M'); $fileName = '数据'; header('Content-Encoding: UTF-8'); header("Content-type:application/vnd.ms-excel;charset=UTF-8"); header('Content-Disposition: attachment;filename="' . $fileName . '.csv"'); //打开php标准输出流 $fp = fopen('php://output', 'a'); //添加BOM头,以UTF8编码导出CSV文件,如果文件头未添加BOM头,打开会出现乱码。 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); //添加导出标题 fputcsv($fp, ['姓名', '年龄', '地区']); $p...
2022年10月10日
503 阅读
0 评论
2022-09-14

js使用window.onload覆盖问题的解决方法

js使用window.onload覆盖问题的解决方法
解决多人开发时,同时使用window.onload事件所出现的后面的window.onload函数覆盖前面一个window.onload函数的问题。<script> // 第一种,使用addEventListener window.onload = function () { console.log("第一次调用"); } function twofunction() { console.log("第二次调用"); } window.addEventListener("load",twofunction); // 第二种,封装window.onload,使用addLoadEvent,但直接使用window.onload还是会被替换的 function addLoadEvent(func) { var oldonload = window.onload; if (typeof wi...
2022年09月14日
657 阅读
0 评论
2022-09-07

微信小程序的事件冒泡和捕获

微信小程序的事件冒泡和捕获
事件冒泡当一个组件上的事件被触发后,该事件会向父节点传递。bind事件名<text>事件的冒泡</text> <view class="one" bindtap="handlerOne">one <view class="two" bindtap="handlerTwo">two <view class="three" bindtap="handlerThree">three</view> </view> </view> 阻止事件冒泡catch事件名<text>事件的冒泡</text> <view class="one" bindtap="handlerOne">one <view class="two" catchtap=&q...
2022年09月07日
595 阅读
0 评论
2022-09-04

电脑为啥系统重装后有两个系统

电脑为啥系统重装后有两个系统
一般使用一键重装软件重装系统时软件会将自己默认为开机引导项以实现自动重装,一般来说重装成功后会自动删除,不过有时可能没有删除,所以才会出现开机有两个系统选项的情况。如图所示:我们可以删掉其中的多余的开机引导项即可解决。具体的步骤如下:1、正常开机进入Windows 系统,然后按Win+R打开运行窗口,在窗口中输入msconfig并确定打开。2、然后在高级选项中找到引导,在这里就可以把不需要的开机引导菜单删除即可,点了删除后需要点应用再点确定。这样开机的时候就不会有两个系统了。另外如果真的是不小心安装了两个系统,还可以进磁盘格式化多余的系统盘。
2022年09月04日
859 阅读
0 评论
2022-09-03

原生js封装ajax

原生js封装ajax
function ajax(options) { var xhr = null; var type = 'GET'; var params = formsParams(options.data); if(typeof options.type != 'undefined'){ type = options.type.toUpperCase(); } //创建对象 if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } if (typeof options.async == "undefined") { options.async = true; } // 处理请求成功的回调函数 xhr.onload = function(){ if (xhr.status >= 200...
2022年09月03日
592 阅读
0 评论