其他教程

模板兔提供一些网站建设相关的教程,让大家迅速的做好一个网站。

最近模板兔给客户做了一个功能就是对海外用户价格翻倍,那么我们如何判断是海外用户呢? 这里,我们可以通过一个IP获取归属地的接口来简单判断下,但是这样判断可能会导致网络卡顿。 $ip = mbt_get_ip(); $api = "http://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=".$ip."&co=&resource_id=6006"; $result = get_url_contents($api); $result= iconv('GB2312', 'UTF-8', $result); $result = json_decode($result,true); if($result['status'] == '0'){ $loct = $result['data'][0]['location']; //echo $loct; if(strpos($loct,'北京')!==false || strpos($loct,'上海')!==false || strpos($loct,'天津')...

我们可以通过 jsDelivr 来自建CDN加速。它很强大,通过 GitHub 搭配 jsDelivr 可以搭建自己专属的 CDN 库。 接下来将介绍 jsDelivr 与 GitHub 如何搭配使用。 首先,登录 GitHub 账户,创建新的仓库,仓库名为 cdn 。 然后,将仓库下载下来,添加静态资源文件,模板兔添加了 jquery.min.js 文件,然后上传到远程仓库。 GitHub 仓库界面,点击 tag => Releases ,发布版本。 此时,我们通过如下 url 规则即可访问刚才发布的资源了: https://cdn.jsdelivr.net/gh/<GitHub 用户名>/<GitHub 仓库名>@<发布的版本号>/<文件路径> https://cdn.jsdelivr.net/gh/erphp/cdn@1.0/jquery.min.js 其...

我们在做js开发的时候会遇到使用layer框架来做弹窗处理,那么在iframe子窗口处理完逻辑后想自动关闭子窗口(不刷新父窗口)并传值给父窗口,该如何做呢?下面模板兔给出相关代码供参考。 子窗口的代码: window.parent.erphpdownKeySuccess(data.html); var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); 父窗口的代码: function erphpdownKeySuccess(shtml){ jQuery(".erphpdown-key-result").html(shtml); var clipboard_pop = new Clipboard(".pop-copy"); clipboard_pop.on("success", function(e) { layer.msg("已复制关键字",{time:500}); }); }

想必很多用户都遇到自己的wordpress网站数据库挂掉的情况吧,因为内存经常不足导致宝塔面板mysql经常停止,需要检测mysql进程是否停止,就像php守护程序一样,检测到mysql 进程禁止后,检测到mysql停止会自动启动。 那么如何在数据库挂掉的时候自动重启数据库呢? Mysql进程守护脚本 shell脚本一: pgrep -x mysqld &> /dev/null if [ $? -ne 0 ];then         bash /www/server/panel/script/rememory.sh            /etc/init.d/mysqld start       fi Mysql进程守护脚本 shell脚本二: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH pgrep -x mysqld &> ...

CloudFlare 的缓存可以提高网站的访问速度,但有时也会带来一些管理上的麻烦。好在,CloudFlare 允许禁用缓存。 CloudFlare 没有直接的配置项可以禁用缓存,但它提供了 Page Rule。 使用 Page Rule 完全禁用缓存: erphpdown.com/* *.erphpdown.com/* 添加两条规则,都选择 Cache Level(缓存规则),值为 ByPass(绕过)。 最后不要忘了在 Caching 面板中,Purge Cache 清除所有缓存。 这样就禁用了你整个网站的缓存了。

swiper幻灯片窗口大小变化以及container容器宽度变化时会导致图片宽度与容器宽度不一样,出现错乱,经过一番查询,可以在swiper的初始化里加以下代码 resizeObserver: true, //窗口容器变化 on: { resize: function(){ this.update(); //窗口变化时,更新Swiper的一些属性,如宽高等 }, } 但是,这个代码仅对浏览器窗口变化有效,container容器大小变化时无效,那么怎么解决呢? 可以动态获取容器的宽度,修改容器的宽度,但是我们不能直接获取容器的宽度,只能通过窗口的宽度减去其他div的宽度,计算出最新的容器的宽度。 var ddd = window.innerWidth - 90 - $(".sidebar-left").width(); swiperHome.el.style.width = ddd+'px'...

最近开发时遇到一个很奇怪的问题,swiper轮播时第二张开始会往左偏移,一开始我以为是宽度没100%,设置后也没用,百思不得其解。 最后找到了解决方案: var swiper = new Swiper('.swiper-container', {})中添加 observer: true, // 修改swiper自己或子元素时,自动初始化swiper observeParents: true,   // 修改swiper父元素时,自动初始化swiper 这样就解决了!

PHP的array_filter函数,通过array_filter可以在数组中查找value <?php // 定义一个二维数组 $arr = array( array('id'=>2, 'score'=>103), array('id'=>5, 'score'=>102), array('id'=>3, 'score'=>102), array('id'=>3, 'score'=>107), array('id'=>4, 'score'=>101), ); /*********** 在二维数组中通过value查找数组元素 ***********/ $searchValue = 102; $r = array_filter($arr, function($t) use ($searchValue) { return $t['score'] == $searchValue; }); var_dump($r); /******************** 查找end ********************/ ?>

本文实例为大家分享了JavaScript实现无缝滚动图片的具体代码,供大家参考,具体内容如下: 参数说明: setInterval 开启间隔型定时器 clearTimeout 关闭定时器 offsetWidth 获取宽度 offsetLeft 获取向左偏移量 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无缝移动</title> <style> *{margin: 0; padding: 0;} #div1{width:520px; height:170px; margin:20px auto; position: relative; /* !!! div1 的位置是相对的 */ background: pink; overflow: hidden} /* !!! overflow: hidden */ #div1 ul{position: absolute; left:0; top:0;} ...

checkbox/ radoi默认不支持更改背景颜色,这里可以使用伪类来实现。基本原理是利用after/ before插入新的元素。然后利用新元素的背景颜色或背景图片覆盖掉原来的样式。 input[type=checkbox] { margin-right: 5px; cursor: pointer; font-size: 14px; width: 15px; height: 12px; position: relative; } input[type=checkbox]:after { position: absolute; width: 10px; height: 15px; top: 0; content: " "; background-color: #ff0000; color: #fff; display: inline-block; visibility: visible; padding: 0px 3px; border-radius: 3px; } input[type=checkbox]:checked:after { content: "✓"; font-size: 1...

这里提供宝塔官方论坛的一键脚本安装,但是安装过程也非常漫长,慢慢等吧。 wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh 安装完后可输入以下命令是否安装成功。 ffmpeg -version 3、网站应用 应用到网站需要在PHP×设置中取消掉 scandir,exec、system、shell_exec函数。 装好之后,PHP截图某一帧代码: exec('/usr/local/bin/ffmpeg -ss 00:00:01 -i ./test.mp4 ./test.jpg -r 1 -vframes 1 -an -f mjpeg 1>/dev/null'); PHP代码示例: function ffmpeg_thumb_callback(){ global $wpdb; $post_id = esc_sql($_POST['post_id']); $video = esc_sql($_POST['video']); $status = 0; ...

CloudFlare大家都知道是做防护的,那么我们把域名DNS换成CF的之后,如果使用CF的免费SSL证书呢? 其实很简单,只需要一步即可,而且你不需要在服务器里配置SSL。当然,这个免费SSL证书只加密浏览器与 Cloudflare 之间的流量,也就是说SSL/TLS 加密模式为 灵活。 在CF后台的网站菜单里,点进某个域名,你会看到如下: 生效后,上图的那个“无证书”的地方会显示你的域名,状态为有效。

1、清理网站日志/php站点session/系统邮件/临时文件 cd /www/server/panel && python tools.pyc clear 2、清空面板回收站 rm -rf /www/Recycle_bin 3、清除mysql二进制日志(操作过程中会停止重启数据库) /etc/init.d/mysqld stop rm -f /www/server/data/ib_logfile* rm -f /www/server/data/mysql-bin.* /etc/init.d/mysqld start 4、检查磁盘剩余空间 df -h 5、查询整个服务器磁盘空间内容 du -h --max-depth= / 假如看到www文件夹占用空间较大,那么定位到www目录 du -h --max-depth= /www/ 找到大文件删掉即可。一般都是一些.log日志文件把磁盘空间占满了。

如果你网站使用了CDN,那么网站日志上获取的ip就不是真实的ip,是CDN提供商的ip,如果你网站遭到攻击,然后你把网站日志上面的ip加入黑名单了,会造成那一片区的访客都无法进入你网站,因为你封掉的是cdn的ip。 所以只有获取真实ip后,才能采取封ip的方法来阻止恶意ip访问你网站。此方法针对使用宝塔面板的用户,并且环境是Nginx 教程步骤 1.登录宝塔面板 2.点击左下方的软件商店 3.在已安装的应用的找到Nginx,点后面的设置 4.选择配置修改,加入以下代码 set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; 如下图 5.点击保存,然后点配置修改上面的服务,会看到重启按钮,点一下重启就好了。

我们在建站过程中常常会有用户注册登录功能,为了减去注册步骤,做社交一键登录是一个首选,但是这些社交登录都要求备案域名,那么未备案的域名怎么申请QQ互联呢? 准备条件: 1、需要具备QQ互联开发者账号 我的是个人开发者 2、一个域名这里注意一下 要国际域名【要国外注册商】 3、先在QQ互联上申请,填好信息 4、然后进入QQ邮箱收信人填 connect@qq.com,标题填写可参考:未备案国际域名 申请QQ互联 APPid:*,内容要求如下 主要注意事项:就是域名要国际域名,国外注册商,如果用阿里云的域名申请,就会不给通过。