ThinkPHP8 默认单应用模式,需要安装多应用扩展composer require topthink/think-multi-app然后在根目录生成所需要的应用模块php think build ms php think build cli上面两行命令会在app目录下生成配套的目录和文件复制根目录的route目录至应用目录下,并删除根目录下的route目录路由直接指定控制器/方法域名后面必须带应用名,否则无法访问(真的很想吐槽,去掉的方法只有一个,就是为应用单独绑定域名)
我当前有一个需求,需要采集一个漫画网站的列表页(带分页)、漫画详情页、章节页,并且在采集的时候携带Cookie,以达到采集会员章节的目的,再者,我需要自动跳转并适宜在定时任务下使用。第一步:引入simple_html_dom库为了能够达到像JavaScript一样操作HTML DOM,我们需要使用到simple_html_dom库,在GitHub下载后,引入simple_html_dom.php文件。由于我当前使用的框架为TP3,所以需要把simple_html_dom.php放置在/ThinkPHP/Library/Org/Util目录下,并修改名称为simple_html_dom.class.php(其他框架或者原生只需按照规范或自己的喜好引入到要使用的文件当中即可)接下来需要在使用的文档顶部(namespace下面)use Org\Util\simple_html_dom;此时,我们就可以在需要使用的方法里$dom = new simple_html_dom();第二步,获取页面dom首先我们需要获取HTML的文档数据该方法输入一个url地址,返回html文档数据// 获取页面H
由于众所周知的原因,Win11迟迟不对I7-7700HQ这款CPU进行推送,忍无可忍之下,只能强行更新。一:下载Windows11 ISO文件下载地址:Download Windows 11滚动到最下面,在项目[下载 Windows 11 磁盘映像 (ISO)]下选择你要下载的版本,在下载前请先看一下你的系统里的版本是什么版本,我这里是[家庭中文版]所以就要下载与之对应的版本,我不太清楚版本对不上有什么后果,可能会安装不成功。选择好语言后下载会有一个.iso的文件,拿到这个文件后无论你是要格式化安装还是走官方流程安装都可以了。二:安装前准备把下载好的.iso文件解压出来,会有一个这样的目录进入[sources]目录把[appraiserres.dll]文件更改为[appraiserres.dll.bak]或删除。随后在当前目录新建一个[appraiserres.dll]空文件。三:安装打开根目录里的setup.exe的程序,随后会弹出安装界面。在此程序里选择你想要的配置并一直下一步就好了,如果你想要保存你的个人资料和所有应用程序的设置及数据,请一定要勾选保存(默认是勾选的),随着最后一
Redis,与Memcached类似,是一个键值结构的非关系型数据库,基于内存运行,可持久化储存、集群负载均衡,常用于内容缓存、消息队列、临时计数以及日志储存场景。由于数据库性能的原因,一些频繁读取或需异步处理的数据我们需要通过Redis来实现,如商品秒杀、消息通知、网站信息设置缓存、操作日志及访问日志储存等,Redis基于内存且高速的模式可以大大减轻我们数据库的负担。一、前置ThinkPHP 5.1PHP 7.2.9Redis 3.0.504Nginx 1.15.11二、连接Redis2.1 设置密码在Redis目录下redis.conf文件里添加requirepass 你要设置的Redis密码2.2 添加Redis配置由于我们需要集中管理相关配置,所以需要在TP5 Config.php文件缓存设置里新增Redis配置 // +---------------------------------------------------------------------- // | 缓存设置 // +---------------------------------------------
预览测试地址Color Thief是一个读取图像色彩的库,它的实现方式是把图像转换为canvas标签,并通过JavaScript来计算每一个像素点的颜色值来输出结果。Github本演示无后端通信,文件在本地处理不向后端发送数据。一、安装 COLOR THIEFnpm install color-thief二、在具体模块中引入 COLOR THIEF因为我安装的是非官方版本的库,所以引入的来源不一样,请根据安装的库版本修改来源import ColorThief from '@codemotion/color-thief'三、HTML<input id="ifile" type="file" style="display:none" accept="image/*" @change="onUpload">四、JS(onUpload方法)onUpload(e) { // 获取file类型数据 var file = e.target.files[0]; /
API:https://api.sunweihu.com/api/sjtx/api.php参数:lx【1.男头:a1 2.女头:b1 3.动漫:c1 4.动漫女头:c2 5.动漫男头:c3】 public function getUserAvatar() { // 获取图片数据 $data = file_get_contents('https://api.sunweihu.com/api/sjtx/api.php?lx=c2'); // 获取图片信息 $info = getimagesizefromstring($data); ob_clean(); // 获取图片类型 $img_type = explode("/",$info['mime']); // 生成目录地址 $dir_local = $_SERVER['DOCUMENT_ROOT'] . '/' . 'images/' . 'avatar/' . date('Ymd'); // 生成图片名称 $img_local =
/** * https://api.sunweihu.com/api/qqxt/api.php接口可接受一个参数【qq】 * 传入随机参数可获取对应QQ用户的昵称,拿这些昵称就可以当作测试数据 **/ public function getUserName() { $nickname = null; while (!$nickname) { $http_result = httpGet('https://api.sunweihu.com/api/qqxt/api.php?qq='.mt_rand(1000000,2000000000)); $data = json_decode(str_replace(array("\r\n", "\r", "\n"), "", http_result )); if ($data->code == 1) { $nickname = $data->name;
核心只需要三行代码。在图片加载的时候,可以渲染一个加载动画提高用户体验,在图片加载完成后关闭加载动画打开图片显示。增加这个功能并不会浪费多长时间,但能够很大的提升用户体验,让用户知晓这里有张图片正在加载。 var img = new Image(); // url为图片地址 img.src = url; img.onload = res => { // 加载完成,让图片显示 }image相关事件:onabort、onerror、onload
SK
Devil in My Mind.