angularjs鼠标悬浮效果

用JQ来做的话很简单的,(通过toggleClass函数就可以了),但是既然提到了angularjs,当然要用angularjs的解决方案来做啦!

angularjs集成了一个jqlite模块(可以理解为阉割版的jquery),提供有限并且常用的功能。

主要用到指令系统中的Link函数,代码就不贴了。

PHP自动更新网站

目前软件开发主流越来越倾向于B/S模式,不同于C/S模式的软件,B/S模式下的WEB程序自动更新是个麻烦问题。

本人利用PHP下载远程文件和ZIP类,写了一个简单的自动更新DEMO,供大家参考。

服务端

目录结构

1
2
3
4
5
|data

|--20140918.zip

|--index.php

PHP下载远程文件

在开发爬虫的时候,文章的图片往往是有防盗链措施的,一个比较好的解决办法是通过PHP下载图片到本地并且替换URL实现。

由于图片这种东西不能直接像下载HTML那样直接下载,所以需要指定fopen的打开模式为b(二进制模式)。

1
2
3
4
5
6
7
8
9
<?php
$url = 'http://picturescdn.qiniudn.com/93aa93787ae02be68192b3533d3e76b0';
$remote_fp = fopen($url,'rb');
$local_fp = fopen(date('YmdHis'),'wb');
while(!feof($remote_fp)){
fwrite($local_fp,fread($remote_fp,128));
}
fclose($remote_fp);
fclose($local_fp);

bootstrap3禁用响应式布局

IE8及以下版本的浏览器确实是心中的痛,不支持媒体查询和CSS3,导致bootstrap样式怪怪的。没办法,只能采取折中的办法–禁用响应式布局

  1. 移除 viewport 标签

Grunt快速上手

为什么要使用Grunt?

一句话:自动化。对于需要反复重复的任务,例如压缩(minification)、编译、单元测试、linting等,自动化工具可以减轻你的劳动,简化你的工作。当你正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工作。

怎么使用Grunt?

1.grunt是基于nodejs的,所以请先安装nodejs和npm安装grunt
2.新版本的grunt安装需要两步,终端执行

1
npm install grunt-cli -g

七牛云存储定义自定义变量返回数据

背景

七牛云存储也使用了这么久了。一直一来都只用了它的图片上传和处理功能。用的是客户端直传API,七牛给我返回一个key(一串随机的hash值,对人类无可读性)。

最近做的一个文件共享的项目,因为文件是客户端直传七牛的,那么我在后台PHP这边是拿不到原始文件名的,但是文件列表必须显示原始文件名,不能显示那个hash值。后来查找文件发现,七牛可以自定义返回的变量。

关键代码

1
2
3
4
5
6
7
8
9
10
<?php
Qiniu_SetKeys($this->accessKey, $this->secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($this->bucket);
$putPolicy->Expires = $expires;
$putPolicy->SaveKey = $filename;
$putPolicy->FsizeLimit = 20*1024*1024;
if($returnUrl != '')
putPolicy->ReturnUrl = $returnUrl;
$upToken = $putPolicy->Token(null);
return $upToken;

linux利用ssh公钥部署git代码

背景

阿里云的使用门槛降低,直接导致了很多人优先使用VPS而不是以前的虚拟主机,毕竟虚拟主机存在诸多限制。阿里云犹如一台全新的服务器,所有软件都要自己安装。作为一个写PHP的,代码部署就略麻烦了,以前使用FTP的时候很方便部署,但是不适合长期开发(因为没有版本控制),所以使用GIT会很方便。

问题

在windows开发机上使用https方式进行git操作是没问题的,但是在linux上进行git操作的时候就会出错误,会让你输入帐号密码,就算是对的帐号密码也不行。这种情况下需要使用 ssh 方式进行GIT。

解决方法

Linux删除乱码文件

shell终端中有时候中文文件名会出现乱码,导致很多操作都不能进行,一个最简单的就是删除了。

linux中每个文件有类似于ID的东西,使用以下命令查看

1
ll -i

MySQL联合主键

单字段主键

MySQL单字段主键相信大家都熟悉了。就是以一个字段主要数据行的主键,比如下面这个表

1
2
3
4
5
6
create table `user`(
user_id int(11) auto_increment,
username varchar(24),
password char(32),
primary key(user_id)
);

user_id作为单字段主键,说明任何用户的user_id都不能相同,一个user_id即标识一个用户。

PHP正则表达式匹配中文

正常的正则表达式匹配英文和数字以及一些常用字符还是很简单的,如

1
2
3
/^\w$/
/^[0-9]$/
/^[\-\_]$/

等等,但是匹配中文的话就有些麻烦了。UTF-8的中文根据unicode编码,所以我们需要手动构造UTF-8字符串

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×