<script src=”//libs.baidu.com/jquery/1.10.2/jquery.min.js”></script>
<video id=”video” controls=”controls”>
<source src=”https://www.w3cschool.cn/statics/demosource/movie.mp4″ />
</video>
<button id=”capture”>Capture</button>
<div id=”output”></div>
js部分:
(function() {
“use strict”;
var video, $output;
var scale = 0.25;
var initialize = function() {
$output = $(“#output”);
video = $(“#video”).get(0);
$(“#capture”).click(captureImage);
};
var captureImage = function() {
var canvas = document.createElement(“canvas”);
canvas.width = video.videoWidth * scale;
canvas.height = video.videoHeight * scale;
canvas.getContext(’2d’)
.drawImage(video, 0, 0, canvas.width, canvas.height);
var img = document.createElement(“img”);
img.src = canvas.toDataURL();
$output.prepend(img);
};
$(initialize);
}());

上面是使用jq+html5来实现视频截图,可以一边播放一边截图都可以。

 

 

第一阶段:

HTML+CSS:
HTML进阶、CSS进阶、div+css布局、HTML+css整站开发、

JavaScript基础:
Js基础教程、js内置对象常用方法、常见DOM树操作大全、ECMAscript、DOM、BOM、定时器和焦点图。

JS基本特效:
常见特效、例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件、滚差视图。

JS高级特征:
正则表达式、排序算法、递归算法、闭包、函数节流、作用域链、基于距离运动框架、面向对象基础、

JQuery:基础使用
选择器、DOM操作、特效和动画、方法链、拖拽、变形、JQueryUI组件基本使用。

第二阶段:HTML5和移动Web开发

HTML5:
HTML5新语义标签、HTML5表单、音频和视频、离线和本地存储、SVG、Web Socket、Canvas.

CSS3:
CSS3新选择器、伪元素、颜色表示法、边框、阴影、background系列属性改变、Transition、动画、景深和深透、3D效果制作、Velocity.js框架、元素进场、出场策略、炫酷CSS3网页制作。

Bootstrap:
响应式概念、媒体查询、响应式网站制作、删格系统、删格系统原理、Bootstrap常用模板、LESS和SASS。

移动Web开发:
跨终端WEB和主流设备简介、视口、流式布局、弹性盒子、rem、移动终端JavaScript事件、手机中常见JS效果制作、Zepto.js、手机聚划算页面、手机滚屏。

第三阶段:HTTP服务和AJAX编程

WEB服务器基础:
服务器基础知识、Apache服务器和其他WEB服务器介绍、Apache服务器搭建、HTTP介绍。

PHP基础:
PHP基础语法、使用PHP处理简单的GET或者POST请求、

AJAX上篇:
Ajax简介和异步的概念、Ajax框架的封装、XMLHttpRequest对象详细介绍方法、兼容性处理方法、Ajax框架的封装、Ajax中缓存问题、XML介绍和使用。

AJAX下篇:
JSON和JSON解析、数据绑定和模板技术、JSONP、跨域技术、图片预读取和lazy-load技术、JQuery框架中的AjaxAPI、使用Ajax实现爆布流案例额。

第四阶段:面向对象进阶

面向对象终极篇:
从内存角度到理解JS面向对象、基本类型、复杂类型、原型链、ES6中的面向对象、属性读写权限、设置器、访问器。

面向对象三大特征:
继承性、多态性、封装性、接口。

设计模式:
面向对象编程思维、单例模式、工厂模式、策略模式、观察者模式、模板方法模式、代理模式、装饰者模式、适配器模式、面向切面编程。

第五阶段:封装一个属于自己的框架

框架封装基础:
事件流、冒泡、捕获、事件对象、事件框架、选择框架。

框架封装中级:
运动原理、单物体运动框架、多物体运动框架、运动框架面向对象封装。

框架封装高级和补充:
JQuery框架雏形、可扩展性、模块化、封装属于自己的框架。

第六阶段:模块化组件开发

面向组件编程:
面向组件编程的方式、面向组件编程的实现原理、面向组件编程实战、基于组件化思想开发网站应用程序。

面向模块编程:
AMD设计规范、CMD设计规范、RequireJS,LoadJS、淘宝的SeaJS。

第七阶段:主流的流行框架

Web开发工作流:
GIT/SVN、Yeoman脚手架、NPM/Bower依赖管理工具、Grunt/Gulp/Webpack。

MVC/MVVM/MVW框架:
Angular.js、Backbone.js、Knockout/Ember。

常用库:
React.js、Vue.js、Zepto.js。

第八阶段:HTML5原生移动应用开发

Cordova:
WebApp/NativeApp/HybirdApp简介、Cordova简介、与PhoneGap之间的关系、开发环境搭建、Cordova实战(创建项目,配置,编译,调试,部署发布)。

Ionic:
Ionic简介和同类对比、模板项目解析、常见组件及使用、结合Angular构建APP、常见效果(下拉刷新,上拉加载,侧滑导航,选项卡)。

React Native:
React Native简介、React Native环境配置、创建项目,配置,编译,调试,部署发布、原生模块和UI组件、原生常用API。

HTML5+:
HTML5+中国产业联盟、HTML5 Plus Runtime环境、HBuilder开发工具、MUI框架、H5+开发和部署。

第九阶段: Node.js全栈开发:

快速入门:
Node.js发展、生态圈、Io.js、Linux/Windows/OS X环境配置、REPL环境和控制台程序、异步编程,非阻塞I/O、模块概念,模块管理工具、开发流程,调试,测试。

核心模块和对象:
全局对象global,process,console,util、事件驱动,事件发射器、加密解密,路径操作,序列化和反序列化、文件流操作、HTTP服务端与客户端、Socket.IO。

Web开发基础:
HTTP协议,请求响应处理过程、关系型数据库操作和数据访问、非关系型数据库操作和数据访问、原生的Node.js开发Web应用程序、Web开发工作流、Node.js开发Blog案例。

快速开发框架:
Express简介+MVC简介、Express常用API、Express路由模块、Jade/Ejs模板引擎、使用Express重构Blog案例、Koa等其他常见MVC框架。

Node.js开发电子商务实战:
需求与设计、账户模块注册登录、会员中心模块、前台展示模块、购物车,订单结算、在线客服即时通讯模块。

 

一、问题

 文件已经另存为了utf-8码,但关闭后重新打开就自动变成了ansi编码?
二、原因
    原因是该文件中没有包含任何中文字符,如果该文件有包含中文字符,将文件另存为utf-8编码后,中文字符会以3个字节的宽度来保存(要看16进制代码),这样,在第二次打开文件时,编辑器会自动将文件识别为utf-8编码。

这里面还存在一个utf-8 bom头的问题,bom头是utf-8文件最开始的3个字节编码,其十六进制码为:EF BB BF,一般情况下编辑器通过判断文件中开头是否存在这三个字节编码,来识别此文件是UTF码或ansi码,但另外还存在一种情况是,utf-8编码文件中在保存时选择了“UTF-8 无BOM”格式(用Ultra Edit编辑器或Notepad++),也就是说移除了bom头三个字节,但文件中的中文是以三个字节的UTF-8编码保存的,一般的编辑器在打开文件时还是能将此文件识别为utf-8编码。但如果文件中既不含中文字符(三字节UTF-8格式编码的),也没有包含bom头标记的,用编辑器打开文件时就会识别为ansi码。
 

$(document).ready(function(){

$(‘#tabfirst li’).hover(function(){

$(this).addClass(“on_tab”).siblings().removeClass();

$(“#tab_box > div”).eq($(‘#tabfirst li’).index(this)).show().siblings().hide();

});

});

html部分

<ul id=”tabfirst”>
<li class=”on_tab”><a href=”/” >麻瓜程序员</a></li>
<li><a href=”/”>jquery切换效果</a></li>
<li><a href=”/”>jquery素材</a></li>
<li><a href=”/”>行业新闻</a></li>
</ul>

<div id=”tab_box”>
<div class=”tab_box2″>1</div>
<div class=”tab_box2″>2</div>
<div class=”tab_box2″>3</div>
<div class=”tab_box2″>4</div>
</div>

 

例子中 在火车采集中使用了xpath方式来采集,分别对文章分开采集第一行 中间内容 和最后一行。

第一行的Xpath:

//div[@class="passage pl10 pr10 f14"]/p[1]

这里意思是
div标签有class=”passage pl10 pr10 f14″第一个p节点。
采集

 

 

中间内容获取

//*[@class="passage pl10 pr10 f14"]/p[text()=//*[@class="passage pl10 pr10 f14"]/p[position()>1] and text()!=//*[@class="passage pl10 pr10 f14"]/p[last()]]

使用了text()和and的来筛除第一行和最后以后
采集

 

最后一行获取
//*[@class="passage pl10 pr10 f14"]/p[last()]
使用了last()来获取最后一个p节点

火车采集Xpath

 

 

下面是实例:

$r=”my.acA45.cc”;
preg_match(“/^\w+\.(\w+)\.+\w+$/”,$r,$hostdo);
print_r($hostdo);

输出的结果是数组 “Array ( [0] => my.acA45.cc [1] => acA45 )”

“echo $hostdo[1]“-》acA45  这个就是获取中间的值了。

 

下面是sql语句

第一步是先建立一个附表用来保存要打乱顺序的旧表的数据。
create table  新表  as select * from 旧表;

第二步是清空旧表的数据。
truncate table 旧表;

第三步是将附表的数据随机重新插入到旧表里面。
insert into 旧表 (title,content) select title,content from 新表 order by rand();

第四部删除附表。
DROP TABLE 新表;

下面是 两个数据库联合查询写入的例子,用了 right join(left join) on    来实现

insert into huoche._niaodao_yan2 (title,content) SELECT a.title,a.content FROM huoche2.`_niaodao_yan` as a right join huoche._niaodao_yan on (a.title=huoche._niaodao_yan.title) where a.title is not null

 

\   转义字符  如:要使用 “\” 本身, 则应该使用“\\”

\t  Tab制表符  注:扩展和正则表达式都支持

\r  回车符CR   注:扩展支持,正则表达式不支持

\n  换行符LF   注:扩展支持,正则表达式不支持

.  匹配任意字符

^ 其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行

$ 其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行

|  或运算符,匹配表达式左边和右边的字符串。如:ab|bc匹配“ab”或“bc”

[] 匹配列表中任意单个字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意单个数字

[^] 匹配列表之外的任意单个字符。如:[^ab]匹配“a”和“b”以外的单个字符;[^0-9]匹配任意单个非数字字符

* 其左边的字符被匹配任意次(0次或多次)。如:be*匹配“b”,“be”或“bee”

+ 其左边的字符被匹配至少一次(1次或多次)。如:be+匹配“be”或“bee”,但不匹配“b”

? 其左边的字符被匹配0次或者1次。如:be?匹配“b”或“be”,但不匹配“bee”

() 影响表达式匹配的顺序(类似C++的小括号会影响表达式运算顺序),并且用作表达式的分组标记(标记从1开始)注:看下文的示例

\d 匹配一个数字字符。等价于:[0-9]

\D \d取反,匹配一个非数字字符。等价于:[^0-9]

\s 匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ \t]

\S  \s取反的任意单个字符。

\w 匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_]

\W \w取反的任意单个字符。等价于:[^A-Za-z0-9_]

示例1

123abcfg
abc
abcd

替换成:

123hello
hello
hello

方法 — 查找串:abc.*$     替换串:hello

示例2

123abcfg
abc
abcd

替换成:

123@abcfg@
@abc@
@abcd@

方法 — 查找串:(abc.*)$     替换串:@\1@

示例3

str[1]abc[991]
str[2]abc[992]
str[11]abc[993]
str[222]abc[996]

替换成

god[991]
god[992]
god[993]
god[996]

方法1 — 查找串:str\[[0-9]+\]abc\[([0-9]+)\]     替换串:god[\1]

方法2 — 查找串:str\[([0-9]+)\]abc\[([0-9]+)\]  替换串:god[\2]

示例4  删除所有空行

step1:a. 选择正则表达式  b. 查找串:^[ \t]*$    替换串:空

step2:a. 选择扩展(\n,\r,\t,\0,\x…)  b.  查找串:\r\n\r\n   替换串:\r\n    注:多次点击替换,直到没有可替换的字串

 

SHOW TABLE STATUS 直接写这个可以获取所在数据库下的所有数据表的信息

Name 表的名称
Engine 表的存储引擎。在MySQL 4.1.2之前,本值被标记为Type。
Version 表的.frm文件的版本号
Row_format 行存储格式(Fixed, Dynamic, Compressed, Redundant, Compact)。InnoDB表的格式被报告为Redundant或Compact
Rows 行的数目。部分存储引擎,如MyISAM,存储精确的数目。对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。在这些情况下,使用SELECT COUNT(*)来获得准确的数目。对于在INFORMATION_SCHEMA数据库中的表,Rows值为NULL。
Avg_row_length 平均的行长度。

 

Data_length 数据文件的长度。
Max_data_length 数据文件的最大长度。如果给定了数据指针的大小,这是可以被存储在表中的数据的字节总数。

 

Index_length 索引文件的长度。
Data_free 被整序,但是未使用的字节的数目。
Auto_increment 下一个AUTO_INCREMENT值。
Create_time 表创建时间。
Update_time 什么时候数据文件被最后一次更新
Check_time 什么时候表被最后一次检查。不是所有的存储引擎此时都更新,在此情况下,值为NULL。
Collation 表的字符集和整序。
Checksum 活性校验和值。
Create_options 和CREATE TABLE同时使用的额外选项。
Comment 创建表时使用的评注(或者有关为什么MySQL可以访问表信息的说明)。

如果是获取单个表的信息 就这样写就行了 SHOW TABLE STATUS FROM 库名 where name=表名

例子

$sql=mysql_query(‘SHOW TABLE STATUS’);
while($row=mysql_fetch_array($sql)){
echo”<tr><td>$row[0]</td><td>$row[4]</td><td>$row[17]</td><td><a href=’list.php?dbtable={$row[0]}’>去重</></td></tr>”;}

 

扩展

mysql show columns等show的用法

SHOW DATABASES︰列出 MySQL Server上的数据库。

SHOW TABLES [FROM db_name]︰列出数据库中的表。

SHOW TABLE STATUS [FROM db_name]︰列出数据库的表信息,比较详细。

SHOW COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,同 SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。

SHOW FULL COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,比较详细,同 SHOW FULL FIELDS FROM tbl_name [FROM db_name]。

SHOW INDEX FROM tbl_name [FROM db_name]︰列出表的索引信息。

SHOW STATUS︰列出 Server 的状态信息。

SHOW VARIABLES︰列出 MySQL 系統参数值

SHOW PROCESSLIST︰查看当前mysql查询进程

SHOW GRANTS FOR user︰列出用户的授权命令

 

1、取得表注释
Select table_name 表名,TABLE_COMMENT 表注释 from INFORMATION_SCHEMA.TABLES Where table_schema = ’testhuicard’ # #数据库名
AND table_name LIKE ’companies’ # #表名
mysql手册:23.1. INFORMATION_SCHEMA表

2、取字段注释
Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
from INFORMATION_SCHEMA.COLUMNS
Where table_name = ’companies’ # #表名
AND table_schema = ’testhuicard’ # #数据库名
AND column_name LIKE ’c_name’ # #字段名

上面的两种方法用到的是 INFORMATION_SCHEMA.TABLES  和 INFORMATION_SCHEMA.COLUMNS 这两个库 这两个是在创建mysql时候就会存在的。

3、取得某数据库下所有表的注释
$tt = mysql_query(“show table status;”);
$table_info=array();
while($re = mysql_fetch_array($tt,MYSQL_ASSOC)){
//$re["Comment"],这个就是表的注释
$table_info[] = $re;
} ……

© 2012 Ai-WEB的博客 Suffusion theme by Sayontan Sinha