扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
html5不基于SGML(标准通用置标语言),因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照他们应该的方式来运行)
创新互联是一家专业提供哈尔滨企业网站建设,专注与成都做网站、成都网站制作、H5页面制作、小程序制作等业务。10年已为哈尔滨众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。
HTML5 The Media Capture API提供了对摄像头的可编程访问,用户可以直接用getUserMedia获得摄像头提供的视频流。但实际上用html5调用手机摄像头存在很多问题:1)谷歌的发布的Chrome到了21版本后,才新增了一个用于高质量视频音频通讯的getUserMedia API,该API允许Web应用程序访问摄像头和麦克风,其他手机浏览器只有opera支持html5调用本地拍照功能2)两个浏览器均不支持访问多个摄像头:chrome不支持访问后置摄像头,pera支持访问后置摄像头的
!DOCTYPE html
html xmlns=""
head
titleHTML5 GetUserMedia Demo/title
meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /
/head
body
input type="button" title="开启摄像头" value="开启摄像头" onclick="getMedia();" /br /
video height="120px" autoplay="autoplay"/videohr /
input type="button" title="拍照" value="拍照" onclick="getPhoto();" /br /
canvas id="canvas1" height="120px" /canvashr /
input type="button" title="视频" value="视频" onclick="getVedio();" /br /
canvas id="canvas2" height="120px"/canvas
script type="text/javascript"
var video = document.querySelector('video');
var audio, audioType;
var canvas1 = document.getElementById('canvas1');
var context1 = canvas1.getContext('2d');
var canvas2 = document.getElementById('canvas2');
var context2 = canvas2.getContext('2d');
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
var exArray = []; //存储设备源ID
MediaStreamTrack.getSources(function (sourceInfos) {
for (var i = 0; i != sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
//这里会遍历audio,video,所以要加以区分
if (sourceInfo.kind === 'video') {
exArray.push(sourceInfo.id);
}
}
});
function getMedia() {
if (navigator.getUserMedia) {
navigator.getUserMedia({
'video': {
'optional': [{
'sourceId': exArray[1] //0为前置摄像头,1为后置
}]
},
'audio':true
}, successFunc, errorFunc); //success是获取成功的回调函数
}
else {
alert('Native device media streaming (getUserMedia) not supported in this browser.');
}
}
function successFunc(stream) {
//alert('Succeed to get media!');
if (video.mozSrcObject !== undefined) {
//Firefox中,video.mozSrcObject最初为null,而不是未定义的,我们可以靠这个来检测Firefox的支持
video.mozSrcObject = stream;
}
else {
video.src = window.URL window.URL.createObjectURL(stream) || stream;
}
//video.play();
// 音频
audio = new Audio();
audioType = getAudioType(audio);
if (audioType) {
audio.src = 'polaroid.' + audioType;
audio.play();
}
}
function errorFunc(e) {
alert('Error!'+e);
}
// 将视频帧绘制到Canvas对象上,Canvas每60ms切换帧,形成肉眼视频效果
function drawVideoAtCanvas(video,context) {
window.setInterval(function () {
context.drawImage(video, 0, 0,90,120);
}, 60);
}
//获取音频格式
function getAudioType(element) {
if (element.canPlayType) {
if (element.canPlayType('audio/mp4; codecs="mp4a.40.5"') !== '') {
return ('aac');
} else if (element.canPlayType('audio/ogg; codecs="vorbis"') !== '') {
return ("ogg");
}
}
return false;
}
// vedio播放时触发,绘制vedio帧图像到canvas
// video.addEventListener('play', function () {
// drawVideoAtCanvas(video, context2);
// }, false);
//拍照
function getPhoto() {
context1.drawImage(video, 0, 0,90,120); //将video对象内指定的区域捕捉绘制到画布上指定的区域,实现拍照。
}
//视频
function getVedio() {
drawVideoAtCanvas(video, context2);
}
/script
/body
/html
html4比较合适,理由如下:
html5开头容易导致ie出现怪异模式,出现兼容问题。
html5开头会在低版本浏览器报错,低版本浏览器会认为是错误的html代码。对网站优化略有影响。
html4开头无论低版本浏览器和高版本浏览器都兼容,而且以html4开头的html代码依然可以用html5的标签。
做页面一定要考虑兼容为主,学html5不可以一味追求全部革新为html5的代码,那样是很不理智的,每一个代码都是有规范的,html5出台,但是div和很多常用的ul+li,dl+dt+dd还是一样的使用。
html5中的video这个标签是引入视频的,通过navigator.getUserMedia去获取摄像头的视频流,所以要在事件里用关闭的代码都不能执行关闭摄像头,只有关闭网页,摄像头才关闭。html5打开摄像头代码:SmartHome-Camera/**/functioninit(t){
PHP include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。
include 和 require 语句是相同的,除了错误处理方面:
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
include 只生成警告(E_WARNING),并且脚本会继续
因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。
包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。
语法
include 'filename';
或
require 'filename';
PHP include 实例
例子 1
假设我们有一个名为 "footer.php" 的标准的页脚文件,就像这样:
?php
echo "pCopyright © 2006-" . date("Y") . " W3School.com.cn/p";
?
如需在一张页面中引用这个页脚文件,请使用 include 语句:
html
body
h1欢迎访问我们的首页!/h1
p一段文本。/p
p一段文本。/p
?php include 'footer.php';?
/body
/html
运行实例
例子 2
假设我们有一个名为 "menu.php" 的标准菜单文件:
?php
echo 'a href="/index.asp"首页/a -
a href="/html/index.asp"HTML 教程/a -
a href="/css/index.asp"CSS 教程/a -
a href="/js/index.asp"JavaScript 教程/a -
a href="/php/index.asp"PHP 教程/a';
?
网站中的所有页面均使用此菜单文件。具体的做法是(我们使用了一个 div 元素,这样今后就可以轻松地通过 CSS 设置样式):
html
body
div class="menu"
?php include 'menu.php';?
/div
h1欢迎访问我的首页!/h1
pSome text./p
pSome more text./p
/body
/html
运行实例
例子 3
假设我们有一个名为 "vars.php" 的文件,其中定义了一些变量:
?php
$color='银色的';
$car='奔驰轿车';
?
然后,如果我们引用这个 "vars.php" 文件,就可以在调用文件中使用这些变量:
html
body
h1欢迎访问我的首页!/h1
?php
include 'vars.php';
echo "我有一辆" . $color . $car "。";
?
/body
/html
运行实例
PHP include vs. require
require 语句同样用于向 PHP 代码中引用文件。
不过,include 与 require 有一个巨大的差异:如果用 include 语句引用某个文件并且 PHP 无法找到它,脚本会继续执行:
实例
html
body
h1Welcome to my home page!/h1
?php
include 'noFileExists.php';
echo "I have a $color $car.";
?
/body
/html
运行实例
如果我们使用 require 语句完成相同的案例,echo 语句不会继续执行,因为在 require 语句返回严重错误之后脚本就会终止执行:
实例
html
body
h1Welcome to my home page!/h1
?php
require 'noFileExists.php';
echo "I have a $color $car.";
?
/body
/html
一、指代不同
1、head标签:是网页的HEAD(头)部分中包含有的内置标签,用来申明使用的脚本语言,以及网页传输时使用的方式等。
2、header标签:header标签是HTML5新增标签元素。
二、浏览器支持不同
1、head标签:浏览器都支持。
2、header标签:旧版本浏览器均不支持,需要IE9+以上浏览器、最新谷歌Chrome等浏览器才支持。
三、支持属性不同
1、head标签:head 中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。
2、header标签:header 标签支持 HTML 中的全局属性。
参考资料来源:百度百科-head标签
参考资料来源:百度百科-Header
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流