在后台执行scp,实现服务器间无密码文件拷贝。
远程备份大容量时常会有这样的情形:从远程备份的文件很大,需要很长时间,想在退出ssh后程序依然能继续在后台下载,可以通过建立服务器间安全信息关系和nohup的方式解决。
远程备份大容量时常会有这样的情形:从远程备份的文件很大,需要很长时间,想在退出ssh后程序依然能继续在后台下载,可以通过建立服务器间安全信息关系和nohup的方式解决。
html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能。html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。
它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。当浏览器不支持Canvas时,将采用Flashcanvas或 ExplorerCanvas技术代替实现。以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome, Opera新的版本, IE9以上的浏览器。
$page->rollPage=xxx;
//禁用右键、文本选择功能、复制按键
$(document).bind("contextmenu",function(){return false;});
$(document).bind("selectstart",function(){return false;});
$(document).keydown(function(){return key(arguments[0])});
//按键时提示警告
function key(e){
var keynum;
if(window.event){
keynum = e.keyCode; // IE
}else if(e.which){
keynum = e.which; // Netscape/Firefox/Opera
}
if(keynum == 17){
alert(“禁止复制内容!”);
return false;
}
}
//禁用右键、文本选择功能、复制按键
$(document).bind("contextmenu",function(){return false;});
$(document).bind("selectstart",function(){return false;});
$(document).keydown(function(){return key(arguments[0])});
//按键时提示警告
function key(e){
var keynum;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
if(keynum == 17){ alert("禁止复制内容!");return false;}
}
<script>
//屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键
function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键
function window.onhelp(){return false} //屏蔽F1帮助
function document.onkeydown(){
if((window.event.altKey)&&
((window.event.keyCode==37)|| //屏蔽Alt+方向键←
(window.event.keyCode==39))){ //屏蔽Alt+方向键→
alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
} if((event.keyCode==8)|| //屏蔽退格删除键
(event.keyCode==116)|| //屏蔽F5刷新键
(event.ctrlKey && event.keyCode==82)){ //Ctrl+R
event.keyCode=0;
event.returnValue=false;
}
if(event.keyCode==122){event.keyCode=0;event.returnValue=false;} //屏蔽F11
if(event.ctrlKey && event.keyCode==78)event.returnValue=false; //屏蔽Ctrl+n
if(event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽shift+F10
if(window.event.srcElement.tagName=="A" && window.event.shiftKey)
window.event.returnValue=false; //屏蔽shift加鼠标左键新开一网页
if((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
return false;
}
}
</script>
function fix_pre($str, $fix='0', $len=2, $type=STR_PAD_LEFT){
$str = str_pad($str, $len, $fix, $type);
return $str;
}
{:fix_pre($seats['seats'], '0', 3)}
项目中需要读取php中图片保存到服务器同时将图片地址写入数据库,phpexcel示例代码如下:
<?php
ini_set("display_errors",1);
include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php';
define('EXCEL_EXTENSION_2003', "xls");
define('EXCEL_EXTENSION_2007', "xlsx");
$fileName2003 = "file.xls";
$fileName2007 = "file.xlsx";
$fileName = $fileName2003;
//$fileName = $fileName2007;
if(getExtendFileName($fileName) == EXCEL_EXTENSION_2003)
{
$reader = PHPExcel_IOFactory::createReader('Excel5');
}
else if(getExtendFileName($fileName) == EXCEL_EXTENSION_2007)
{
$reader = new PHPExcel_Reader_Excel2007();
}
$PHPExcel = $reader->load($fileName);
$worksheet = $PHPExcel->getActiveSheet();
$imageInfo = extractImageFromWorksheet($worksheet,"savepath/");
print_r($imageInfo);
/**
* 检测文件类型
*
* @param <type> $file_name The file name
*
* @return <type> The extend file name.
*/
function getExtendFileName($file_name) {
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
/**
* 获取图片
*
* @param <type> $worksheet The worksheet
* @param <type> $basePath The base path
*
* @return array ( description_of_the_return_value )
*/
function extractImageFromWorksheet($worksheet, $basePath){
$result = array();
$imageFileName = "";
foreach ($worksheet->getDrawingCollection() as $drawing) {
$xy=$drawing->getCoordinates();
$path = $basePath;
// for xlsx
if ($drawing instanceof PHPExcel_Worksheet_Drawing) {
$filename = $drawing->getPath();
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
copy($filename, $path);
$result[$xy] = $path;
// for xls
} else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
$image = $drawing->getImageResource();
$renderingFunction = $drawing->getRenderingFunction();
switch ($renderingFunction) {
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagejpeg($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
}
$result[$xy] = $imageFileName;
}
}
return $result;
}
<?php
//屏蔽北上广
$ip = get_client_ip();
// $url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
$data = https_request($url);
$data = json_decode($data, true);
$region = $data['province'];
if($region == '广东' || $region == '北京' || $region == '上海'){
header("Content-type: text/html; charset=utf-8");
echo "<h1>网站升级中</h1>";
die;
}
/**
* 获取访客IP地址
*
* @param integer $type The type
* @param boolean $adv The advance
*
* @return array The client ip.
*/
function get_client_ip($type = 0,$adv=false) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if($adv){
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if(false !== $pos) unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}
/**
* 获取接口数据
*
* @param <type> $url The url
*
* @return <type> ( description_of_the_return_value )
*/
function https_request($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
本地存储localStorage以及它的封装接口store.js的使用
from:https://segmentfault.com/a/1190000007539338
本地存储localstorage
localstorage
是 HTML5 提供的在客户端存储数据的新方法,主要作用是将数据保存在客户端中,并且数据是永久保存
的,除非人为干预删除。