检查/禁用服务器端口
检查:
服务器本地检查:dos下执行 netstat -na ,可查看所有开启的端口
远程检查:windows检查端口是否关闭,在dos下执行命令 telnet ip地址或域名 端口号 ,如果能进入就说明端口是开放的,如果出现"不能打到开主机的链接,端口xxx失败"就说明端口没有开启。
禁用:
打开“控制面板”→打开“系统和安全”→打开“系统和安全”→打开“windows防火墙”→高级设置→选中“入站规则”→鼠标右点击“新建规则”→选择“端口” →下一步 →特定本地端口 输入要屏蔽的端口,多个用逗号分隔,如:135,139,445 →下一步→点击 “阻止连接”→ 全选域、专用、公用→名称自定,如:禁用端口 → 完成。记得要开启防火墙
如果用的阿里云ECS,除了云服务器ECS》网络与安全》安全组中开启的端口,其他本部默认封闭。
关闭WPS弹窗广告
C:\Users\Administrator\AppData\Local\kingsoft\WPS Office\11.1.0.12358\office6\ksomisc.exe
双击进入高级设置
或者在桌面wps图标上点右键》打开文件所在位置进入目录找到 ksomisc.exe 》双击运行》高级》其他选项》关闭广告弹窗推送,确定
抓包工具charles
js 字符和unicode互转
String.fromCharCode(97); //a String.fromCharCode(97,97); //aa String.fromCharCode(20013); //中 '中国'.charCodeAt(0); //20013
PHP文件系统函数
- basename — 返回路径中的文件名部分
- chgrp — 改变文件所属的组
- chmod — 改变文件模式
- chown — 改变文件的所有者
- clearstatcache — 清除文件状态缓存
- copy — 拷贝文件
- delete — 参见 unlink 或 unset
- dirname — 返回路径中的目录部分
- disk_free_space — 返回目录中的可用空间
- disk_total_space — 返回一个目录的磁盘总大小
- diskfreespace — disk_free_space 的别名
- fclose — 关闭一个已打开的文件指针
- fdatasync — Synchronizes data (but not meta-data) to the file
- feof — 测试文件指针是否到了文件结束的位置
- fflush — 将缓冲内容输出到文件
- fgetc — 从文件指针中读取字符
- fgetcsv — 从文件指针中读入一行并解析 CSV 字段
- fgets — 从文件指针中读取一行
- fgetss — 从文件指针中读取一行并过滤掉 HTML 标记
- file_exists — 检查文件或目录是否存在
- file_get_contents — 将整个文件读入一个字符串
- file_put_contents — 将一个字符串写入文件
- file — 把整个文件读入一个数组中
- fileatime — 取得文件的上次访问时间
- filectime — 取得文件的 inode 修改时间
- filegroup — 取得文件的组
- fileinode — 取得文件的 inode
- filemtime — 取得文件修改时间
- fileowner — 取得文件的所有者
- fileperms — 取得文件的权限
- filesize — 取得文件大小
- filetype — 取得文件类型
- flock — 轻便的咨询文件锁定
- fnmatch — 用模式匹配文件名
- fopen — 打开文件或者 URL
- fpassthru — 输出文件指针处的所有剩余数据
- fputcsv — 将行格式化为 CSV 并写入文件指针
- fputs — fwrite 的别名
- fread — 读取文件(可安全用于二进制文件)
- fscanf — 从文件中格式化输入
- fseek — 在文件指针中定位
- fstat — 通过已打开的文件指针取得文件信息
- fsync — Synchronizes changes to the file (including meta-data)
- ftell — 返回文件指针读/写的位置
- ftruncate — 将文件截断到给定的长度
- fwrite — 写入文件(可安全用于二进制文件)
- glob — 寻找与模式匹配的文件路径
- is_dir — 判断给定文件名是否是一个目录
- is_executable — 判断给定文件名是否可执行
- is_file — 判断给定文件名是否为一个正常的文件
- is_link — 判断给定文件名是否为一个符号连接
- is_readable — 判断给定文件名是否可读
- is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
- is_writable — 判断给定的文件名是否可写
- is_writeable — is_writable 的别名
- lchgrp — 修改符号链接的所有组
- lchown — 修改符号链接的所有者
- link — 建立一个硬连接
- linkinfo — 获取一个连接的信息
- lstat — 给出一个文件或符号连接的信息
- mkdir — 新建目录
- move_uploaded_file — 将上传的文件移动到新位置
- parse_ini_file — 解析一个配置文件
- parse_ini_string — 解析配置字符串
- pathinfo — 返回文件路径的信息
- pclose — 关闭进程文件指针
- popen — 打开进程文件指针
- readfile — 输出文件
- readlink — 返回符号连接指向的目标
- realpath_cache_get — 获取真实目录缓存的详情
- realpath_cache_size — 获取真实路径缓冲区的大小
- realpath — 返回规范化的绝对路径名
- rename — 重命名一个文件或目录
- rewind — 倒回文件指针的位置
- rmdir — 删除目录
- set_file_buffer — stream_set_write_buffer 的别名
- stat — 给出文件的信息
- symlink — 建立符号连接
- tempnam — 建立一个具有唯一文件名的文件
- tmpfile — 建立一个临时文件
- touch — 设定文件的访问和修改时间
- umask — 改变当前的 umask
- unlink — 删除文件
【严重】程序开发中"删除"功能需要特别注意的地方
请输入查看密码:js下载文件
普通的jQuery中的ajax请求后台,并不能处理Blob类型的数据,这里用的原生的XMLHttpRequest请求后台
转自:https://blog.csdn.net/lf1934305268/article/details/123401275
var xhr = new XMLHttpRequest(); xhr.open("get",url, true); xhr.responseType = "blob"; xhr.onload = function() { if (this.status == 200) { $.unblockUI(); var blob = this.response; if(blob.type == "text/html"){ return false } var fileName = "aaaa.xlsx"; if(window.navigator.msSaveOrOpenBlob){ // IE浏览器下 navigator.msSaveBlob(blob, fileName); } else { var link = document.createElement("a"); link.href = window.URL.createObjectURL(blob); link.download = fileName; link.click(); window.URL.revokeObjectURL(link.href); } }else{ } }
另:IE浏览器已不再使用,可以删除对IE浏览器的判断
我的代码:
var xhr = new XMLHttpRequest(); xhr.timeout = 600000; //设置超时毫秒数(0为永不超时) xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = function(){ if(this.status != 200){ return; } var blob = this.response; if(blob.type == "text/html"){ console.log('error'); return false; } var allow_type=['video/quicktime','video/mp4']; if(allow_type.indexOf(blob.type)==-1){ console.log('content-type not allowed'); return false; } console.log(filename+' 下载完成,大小'+blob.size+'字节'); var url = window.URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(a.href); } xhr.onerror = function(){ console.log('error'); console.log(this.status); console.log(this); } xhr.ontimeout = function(){ console.log('timeout'); console.log(this.status); console.log(this); } xhr.send();
localStorage简明教程
localStorage API(属性和方法):
length:返回 localStorage 中的键值对的数目
setItem():增加一个键值对到 localStorage 中
getItem():从 localStorage 中查询指定 key 的值
removeItem():从 localStorage 中删除指定的键值对
clear():清空 localStorage 中所有键值对
key(): 传入一个数字 n,用于返回指定第 n 个键的名字
PHP常用header状态
转自:https://www.cnblogs.com/limeng951/p/5634107.html
<?php //200 正常状态 header('HTTP/1.1 200 OK'); // 301 永久重定向,记得在后面要加重定向地址 Location:$url header('HTTP/1.1 301 Moved Permanently'); // 重定向,其实就是302 暂时重定向 header('Location: http://www.maiyoule.com/'); // 设置页面304 没有修改 header('HTTP/1.1 304 Not Modified'); // 显示登录框, header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="登录信息"'); echo '显示的信息!'; // 403 禁止访问 header('HTTP/1.1 403 Forbidden'); // 404 错误 header('HTTP/1.1 404 Not Found'); // 500 服务器错误 header('HTTP/1.1 500 Internal Server Error'); // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.jb51.net/ /> 相同) header('Refresh: 3; url=http://www.jb51.net/'); echo '10后跳转到http://www.jb51.net'; // 重写 X-Powered-By 值 header('X-Powered-By: PHP/5.3.0'); header('X-Powered-By: Brain/0.6b'); //设置上下文语言 header('Content-language: en'); // 设置页面最后修改时间(多用于防缓存) $time = time() - 60; //建议使用filetime函数来设置页面缓存时间 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // 设置内容长度 header('Content-Length: 39344'); // 设置头文件类型,可以用于流文件或者文件下载 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); readfile('example.zip');//读取文件到客户端 //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 ?>
Ueditor配置
1、宽度自适应:设置 initialFrameWidth: null
var ue = UE.getEditor('editor',{ initialFrameWidth:null, //宽度随浏览器自适应 wordCount: false, //关闭字数统计 elementPathEnabled : false, //隐藏元素路径 autoHeightEnabled: false, //是否自动长高 autoFloatEnabled: false, //是否保持toolbar的位置不动 allowDivTransToP: false, //阻止div标签自动转换为p标签 });
2、高度自适应:设置 '#edui1' 和 '#edui1_iframeholder' 的高度
css中设置:
#edui1 { height: 100%; }
js中设置(编辑器显示时):
$('#edui1_iframeholder').css('height','calc(100% - 10px)');
3、扩展
ue.setDisabled();//不可编辑