分类 - 工具

Windows    2018-04-20 15:45:00    180    0    0

Win10 后台运行进程

  1. //Win10 后台运行进程
  2. Start-Process php test.php -WindowStyle Hidden
  3. // 或
  4. start php test.php -WindowStyle Hidden
2018-03-12 16:45:41    215    0    0

根据key赋值

  1. $field = ['id', 'token'];
  2. $info = array_intersect_key((array)$obj, array_flip($field));
  3. print_R($info);
  4. /*
  5. $info['id'] = $obj->id;
  6. $info['token'] = $obj->token;

对多维数组中任意键值排序

  1. $array = [
  2. [
  3. 'order' => '2',
  4. 'name' => '小红',
  5. ],
  6. [
  7. 'order' => '1',
  8. 'name' => '小蓝',
  9. ],
  10. [
  11. 'order' => '3',
  12. 'name' => '小黑',
  13. ],
  14. ];
  15. array_multisort(array_column($array, 'order'), SORT_ASC, $array);
  16. print_R($array);

实现JS的 charCodeAt

  1. //实现JS的 charCodeAt
  2. function charCodeAt($str)
  3. {
  4. $result = '';
  5. for($i = 0, $l = mb_strlen($str, 'utf-8');$i < $l;++$i)
  6. {
  7. $result .= uniord(mb_substr($str, $i, 1, 'utf-8'));
  8. }
  9. return $result;
  10. }
  11. function uniord($str)
  12. {
  13. if (strlen($str) == 1){
  14. return hts(1^ord($str));
  15. }
  16. $str = mb_convert_en
收藏    2017-10-13 17:59:35    202    0    0
JS    2017-09-12 21:02:44    210    0    0

百度推广的创意图片上传,必须是jpg,所以蛋疼的写了一个小工具

具体的不上传了,把关键的地方写一下

  1. //input file
  2. $('#file').change(function(){
  3. var img = document.createElement('img');
  4. //直接获得图片路径
  5. img.src = window.URL.createObjectURL(this.files[0]);
  6. img.onload = function(status){
  7. return function(){
  8. //防止死循环
  9. if (status){
  10. status = 0;
  11. } else{
  12. return false;
  13. }
  14. //靠canvas转格式
  15. var canvas = document.createElement("canvas");
  16. canvas.height = this.height;
  17. canvas.width = this.width;
  18. canvas.getContext("2d").drawImage(this, 0, 0);
  19. var src = canvas.toDataURL("image/jpeg")
  20. //base64转Blob
  21. , arr = src.split(',')
  22. , mime = arr[0].match(/:(.*?);/)[1]
  23. , bstr = atob(arr[1])
  24. , n = bstr.length
JS    2017-08-14 14:40:47    169    0    0

  1. $template = function($table){ return <<<EOF
  2. <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
  3. <head>
  4. <!--[if gte mso 9]>
  5. <xml>
  6. <x:ExcelWorkbook>
  7. <x:ExcelWorksheets>
  8. <x:ExcelWorksheet>
  9. <x:Name>Worksheet1</x:Name>
  10. <x:WorksheetOptions>
  11. <x:DisplayGridlines/>
  12. </x:WorksheetOptions>
  13. </x:ExcelWorksheet>
  14. </x:ExcelWorksheets>
  15. </x:ExcelWorkbook>
  16. </xml>
  17. <![endif]-->
  18. </head>
  19. <body>
  20. $table
  21. </body></html>';
  22. EOF;
  23. };
  24. header('Content-Type:application/force-download');
  25. header("content-Disposition:filename=select.xls");
  26. echo $template($t
工具    2017-07-21 18:36:35    562    0    0

网址封装APK

之前使用Cordova + CrossWalk封装apk的时候练习写的,不过由于我的服务器带宽太小,这次没加CrossWalk


Js颜文字解密

做这个的初衷是有一次研究如何隐藏微信功能按钮(非接口),发现有一个网站可以做到不显示功能按钮,但是JS是颜文字加密的。搜了一下并没有相关的解密,于是顺手写了一个。


从右至左强制

有次发现在QQ群里有个人发的信息总会在最后追加内容,例如

:这个不难,这是一个小尾巴
:好饿啊,这是一个小尾巴

研究了一下,发现是在群备注里加了一个Unicode编码里的控制符
写出来试一下


网页弹幕

目标是做成类似有言多说那种第三方的网页弹幕聊天插件
根据页面URL分组 , 聊天
后续可以做成Chrome 插件,或者书签栏的形式


https://tool.zcmzcm.org/md5

供前端md5使用, POST data=data 即可


https://tool.zcmzcm.org/ping

供前端获取IP使用, POST url=url 即可(必须带协议httphttps)


JS    2017-07-21 18:35:52    224    0    0

客户端显示图片内容

  1. //客户端显示图片内容
  2. var src = window.URL.createObjectURL(docObj.files[docObj.files.fileList.length-1]);

修改浏览器只读属性

  1. //修改浏览器只读属性
  2. Object.defineProperty(navigator,'platform',{get:function(){return 'Android';}});
  3. //或
  4. Object.defineProperty(navigator,'platform',{value:'Android'});

JS瞬间卡住浏览器

  1. //JS瞬间卡住浏览器
  2. for (var i=10000;i<1000000;i++)
  3. {
  4. history.pushState (0,0,i.toString().repeat(i));
  5. }

Table导出Excel

  1. //Table导出Excel
  2. $('.export').click((function() {
  3. var uri = 'data:application/vnd.ms-excel;base64,',
  4. template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body
MySQL    2017-07-21 18:35:52    195    0    0

  1. ///强制使用索引
  2. SELECT 字段 from with(index(索引名)) where num=@num

  1. //数据替换
  2. UPDATE SET 字段 = REPLACE(字段, '</td>', '' );

Linxu    2017-07-21 18:35:52    219    0    0

  1. //当前路径下子栏目的大小
  2. du -lh --max-depth=1

  1. //所有文件(包括子栏目)批量重命名
  2. //例:gif替换为jpg
  3. find /data/wwwroot/uploads/ -name "*.gif" | awk -F "." '{print $1}' | xargs -i -t mv {}.gif {}.jpg

  1. //在指定文件中查找内容
  2. find /etc -name "*" | xargs grep "hello abcserver"

  1. //包含某个路径的指定文件打包,数量太多的话压缩不能用-c
  2. find ./ -name "*.png" | grep uploads | xargs tar rf a.tar
JS    2017-07-21 18:35:52    217    0    0

  1. function print_qrcode(o, c, n, e) {
  2. var r = []
  3. , l = [];
  4. c = c || "22px",
  5. n = n || "black",
  6. e = e || "white";
  7. for (var i = 0; i < o.length; i++) {
  8. for (var p = o[i], t = 0; t < p.length; t++)
  9. l.push("%c\u25a0"),
  10. r.push("line-height:0; font-size: " + c + "; color:" + ("1" == p[t] ? n : e));
  11. l.push("\n")
  12. }
  13. r.unshift(l.join("")),
  14. console.log.apply(console, r)
  15. }
  16. var qrcode = ["111111101100101111111","100000100100101000001","101110101010101011101","101110101001001011101","101110101110001011101","100000100000001000001","111111101010101111111","000000000110000000000","111100101010010011101","001010001100111111101","100000110110110100011","101000001010100101010","010010110011011000001","000000001010001110100","111111100110011110000","100000100111110101101","101110100011000001100","101110101110000001110","101110101101000100100","100000101111101110001","1111111011011101001