最新动态

最新博文

最近刚开始学Vue.js,感觉上手挺容易的,就用Vue写了个小demo---音乐播放器,代码量比js少了好多。 Html: <audio :src="'./music/'+music_src" id="audio"></audio> audio标签的src是用vue动态绑定的: var audio = document.getElementById("audio"); new Vue({ el: "#music", data: { music: [……], music_src: '', }, methods: { play: function(index){ this.music_src = this.music[index].src; audio.play(); } } }); 最后发现src是动态绑定进去了,但 audio.play(); 并不能播放,最后把这句去掉后,在audio标签里面加上autoplay属性,音乐就能动态加载播放了。 <audio :src="'./music/'+music_src" id="audio" au

百度搜索PHP二位数组排序,得到的方法,千篇一律,都是使用array_multisort方法排序,这个方法是先将需要排序的字段放在一个一维数组里面,然后再使用array_multisort进行排序,但其实PHP有一种更简单的方法,可以对二位数组进行排序: usort($list, function($a, $b){ return strcmp($a['created'], $b['created'])*-1;/ -1:降序,1:升序 }); 只用了两三行代码就轻松实现了二位数组排序

浏览器跨域是我们在开发过程中经常遇到的问题,常用的方法有jsonp,但jsonp只支持get方式,我们可以使用CORS解决浏览器跨域的问题。 照网上的方法,在PHP代码里面设置头消息,我用的是ThinkPHP框架,写在了action里面,但仍旧报跨域错误。 header('content-type:application:json;charset=utf8'); header("Access-Control-Allow-Origin:/127.0.0.1");/允许访问的域名 header('Access-Control-Allow-Methods:POST');/跨域请求方式 header('Access-Control-Allow-Headers:x-requested-with,content-type'); 后来,我把它放到class之前,命名空间之后,便解决了使用CORS浏览器跨域的问题。

平时在开发学习中,经常会接触到Linux系统,需要在Linux系统中搭建环境,但我们总不能把自己的电脑重装为Linux,或者买一台服务器来学习,这样的代价是很昂贵的,我们可以在windows系统下使用虚拟机,不过启动虚拟机是比较耗内存的,但好在win10下包含了Linux子系统,我们可以不用安装VMware或者VirtualBox,就可以在win10下跑Linux了,不过,目前支持Ubuntu,Centos我还不清楚。 1.控制面板/程序和功能/启用和关闭windows功能,勾选“适用于Linux的Windows子系统”,安装完成后重启电脑 2.在应用商店下,搜索Ubuntu并安装(我这里已经安装好了),安装完成后,打开刚下载好的Ubuntu,会开始进行安装Ubuntu子系统 3.安装完成后,直接在windows命令行下运行bash,便进入Ubuntu子系统了,然后可以在里面搭建我们需要的环境了

一、安装 phpize 和 php-config yum install php-devel 安装后可用 which phpize 和 which php-config 查看安装的路径 二、下载 phpredis wget /github.com/phpredis/phpredis/archive/develop.zip 三、扩展安装 1.解压缩 develop.zip unzip develop.zip 2.生成使用configure工具 cd phpredis-develop/ phpize ./configure -with-php-config=/usr/bin/php-config 3.编译 make make install 4.修改 php.ini 启用 redis 扩展 php --ini vim /etc/php.ini 在最后一行添加: extension=redis.so 然后保存退出,使用 php -m 命令查看已安装的扩展,有 redis 表示扩展安装成功

之前有朋友向我反馈过一个问题,本博不支持游客方式发评和留言,只能用QQ登陆和微博登陆后才能进行发评和留言,会有一点影响: 1、登陆太麻烦,需要输入QQ账号或微博账号进行登陆 2、对安全性有点担忧(这是最重要的),虽然QQ登陆和微博登陆,并不会对用户造成信息泄露,因为本站无法获取用户的隐私信息 细想,确实是这么个理,如果我是博友,我想我也懒得输入那么复杂的账号和密码进行登陆,如果我是外行,对技术一点不懂,也确实担心自己的QQ信息和微博信息是否会被泄露。 博客最初是不用登陆可以直接发评的,后来看到有“友言”、“多说”等类似的社会化评论插件,这些是需要进行登陆的,自己是做后端的,自己原创的博客总不能都用别人现成的吧,我就在想着自己做一个支持QQ登陆和微博登陆的评论框(也想过再加入微信登陆的,但微信登陆有限制,无法接入),然后就有了这个功能,确实没考虑到上面网友们所æ‹

很久没更新博客了,直到昨天狮小金在博客留言时,发现使用QQ和微博登陆博客,现在我就写写是如何解决这个问题的。 经调试,发现是在QQ登陆回调时,无法接收GET过来的code参数,最开始以为是路由配置问题,在那修改了很久也没成功,后来仔细追溯,路由配置从博客上线就没修改过,好像是在博客开启HTTPS后出现的问题吧,目前博客使用的是阿里云的虚拟主机(已购买独立服务器,后会迁移),和免费的SSL证书,由于虚拟主机使用SSL证书,需要开启CDN加速(具体什么原因我不太懂,缘由请自行百度),就在阿里云上开启了CDN加速,查看配置参数,终于发现“过滤参数”一项处于开启状态,就接收不到了传递过来的参数了,关闭后,终于取到了GET参数,成功使用QQ和微博登陆。 这个问题,一直在那搁了几个月竟然都没发现,感谢友链朋友狮小金

什么是两步验证? 谷歌两步验证是Google的一种开源技术,给网站提供额外的保护,每次登录账户时,在登录后需要输入Google Authenticator给你生成的6位验证码。 怎么使用? 用法很简单,只需要几行代码就可以轻松实现两步验证 <?php require_once './GoogleAuthenticator.php'; $auth = new GoogleAuthenticator; $secret = $auth->createSecret();/生成密钥 /$auth->getCode();/生成二维码,次方法需要翻墙,我们建议用qrcode生成二维码 $code = $_POST['code'];/接收用户输入的验证码 if($auth->verifyCode($secret, $code)){ echo "验证成功"; } ?> 验证步骤 1.手机上下载安装APP:Google Authenticator 2.打开APP,扫描二维码(安卓手机需要安装Googl

由于微信小程序不支持HTML代码,但我们存在服务器中的文章内容的代码都是HTML的,当我们在微信小程序上,从服务器取出的HTML数据,又如何在小程序中显示呢?这需要一个插件wxParse。 使用方法: 1.下载wxParse插件:/github.com/icindy/wxParse,下载后解压到小程序根目录。 2.在需要显示文章内容的wxml文件中引入wxParse.wxml <import src="/wxParse/wxParse.wxml"/> 3.在wxml文件需要显示显示文章内容的地方加入以下代码 <template is="wxParse" data="{{wxParseData:content.nodes}}"/> 4.在wxss文件中引入wxParse.wxss样式文件 @import "/wxParse/wxParse.wxss"; 5.js文件代码 var WxParse = require("../../wxParse/wxParse.js");/引入wxPa

微信小程序当页面滑到底部,如何上拉加载更多数据,我们需要用onReachBottom方法实现,当滑动到底部,页码+1请求服务器,并设置数据。 var pageNum = 1;/页码 Page({ data:{ loadMoreText: '加载更多',/底部文字 list: [] }, onLoad:function(options){ / 页面初始化 options为页面跳转所带来的参数 this.getList(1) }, onReachBottom:function(){ / 加载更多,滑动到底部执行此方法 pageNum+=1; console.log(pageNum) this.getList(pageNum) }, /获取数据 getList:function(page){ var that = this; wx.request({ url: 'weixin.htm

\yii\widgets\ActiveForm类提供了Bootstrap3的表单域,但在Yii2默认表单控件中,它的样式就没有那么美观了,那我们怎么在不修改其表单方法下,修改表单的样式呢?我们可以在ActiveForm::begin中给他一个模板参数“template”,就可以直接修改了表单样式。 <?php $form = ActiveForm::begin([ 'id' => 'msg-form', 'options' => ['class'=>'form-horizontal'], 'fieldConfig' => [ 'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>", 'labelOptions' => ['class' => 'col-lg-1 control-label'], ] ]); 这是基于Bootstrap3的网格系统设置的

gii可谓是Yii2中一个神奇的扩展,可以快速帮你生成Model类、CRUD、Module模块、Form表单等,可以在开发上节约很大的时间。 1、在 config/web.php 中配置 if (YII_ENV_DEV) { $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = 'yiigiiModule'; } 2、在入口文件配置,设置为开发环境 defined('YII_ENV') or define('YII_ENV', 'dev'); 3、浏览器打开 /127.0.0.1/index.php?r=gii 4、点击Model Generator,填写Table Name(表名)和Model Class(类名)快速生成Modelç±» 5、然后,点击下方的preview,会列出要生成的模型,确认没问题后,点击Generate生成 6、点击Crud Generator,填写Model Class(已生成的类名,包括命名空间)、Search Model Class(需要生成的æ¨