查看centos是否支持虚拟化

[root@localhost ~]# cat /proc/cpuinfo

找到flags部分,如果其中输出有SVM或VMX,表明CPU支持虚拟化技术

发表在 linux | 留下评论

前端ajax请求每次提交的PHPSESSID都不一样的bug修复

php服务端,需要在跨域的地方加这个头:
header( 'Access-Control-Allow-Credentials:true' );

前端请求时需要加这个参数
xhrFields:{
withCredentials: true
},
如:

$.ajax({
url: "B. abc.com " ,
xhrFields:{
withCredentials: true
},
});

发表在 js | 留下评论

win10安装和卸载python的坑,无法卸载的3.8.6版本

首先卸载绝对不是在控制面板里卸载就完事了
在控制面板里卸载完 ,在gitbash里运行 python依然提示3.8.6。
这时候在电脑里搜索 python 也一样找不到python
其实因为安装了pip的缘故,
卸载pip
python -m pip uninstall pip
删除所有python的目录即可

最后想安装自定义高级一点的python 建议下载这个免安装版本
python-3.13.0-embed-amd64
直接把文件目录放到一个文件夹,设置系统环境变量path里面新增一个目录,再添加一条 python名字的变量 指向exe路径,如: D:\Program Files\python-3.13.0-embed-amd64\python.exe

这时候python就是最新定义的版本了

发表在 win10 | 留下评论

mysql按月、周、天分组查询数据,原始数据是时间戳

如果直接查询单条数据出来 是会卡爆内存的。所以要在mysql内部分好组。
字段upload_time是日期格式时:

select DATE_FORMAT(upload_time,'%Y%u') weeks,count(SN_ID) count from table_sn group by weeks;  -- 按照周分组
select DATE_FORMAT(upload_time,'%Y%m%d') days,count(SN_ID) count from table_sn group by days;  -- 按照日分组 
select DATE_FORMAT(upload_time,'%Y%m') months,count(SN_ID) count from table_sn group by months;  -- 按照月分组

字段upload_time是时间戳数字格式时:

select DATE_FORMAT(FROM_UNIXTIM(upload_time),'%Y%u') weeks,count(SN_ID) count from table_sn group by weeks;  -- 按照周分组
select DATE_FORMAT(FROM_UNIXTIM(upload_time),'%Y%m%d') days,count(SN_ID) count from table_sn group by days;  -- 按照日分组 
select DATE_FORMAT(FROM_UNIXTIM(upload_time),'%Y%m') months,count(SN_ID) count from table_sn group by months;  -- 按照月分组
发表在 mysql | 留下评论

php给网址替换成链接 正则

因为内容里可能已经带链接的html
所以需要先将链接的代码暂时隐藏,最后再恢复。

 public static function text2link($str='')
    {
        if ($str == '' || !preg_match('/(http|ftp|www\.|@)/i', $str)) {
            return $str;
        }
        $lines = explode("\n", $str . "\n");
        $link = "";
        foreach ($lines as $tt => $vv) {
            $vv = preg_replace("/([ \r\n\t]|^)www\./i", "\\1http://www.", $vv); //www开头自动加http://
            //将现有的链接代码隐藏
            $vv = preg_replace_callback("/href=[\"|']((http|https|ftp):\/\/[^ \r\n]+)[\"|']/i", function ($matches) {
                return "href=\"[link:". base64_encode($matches[1]) ."]\"";
            }, $vv);
            $vv = preg_replace("/((http|https|ftp):\/\/[^ \r\n]+)/i", "<a href=\"\\1\" target='_blank'>\\1</a>", $vv);
//            $vv = preg_replace("/([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))/i", "<a href=\"mailto:\\1\">\\1</a>", $vv);
            //链接代码恢复
            $vv = preg_replace_callback("/\[link:([^\]]+)\]/i", function ($matches) {
                return base64_decode($matches[1]);
            }, $vv);
            $link .= $vv . "\n";
        }
        return $link;
    }
发表在 php | 留下评论

php thinkphp 执行ffmpeg指令的路径问题

例子:

$command = 'ffmpeg -y  -i  ../runtime/cache/'.$TEMP_Gif_path.' -vf "ass=../runtime/cache/'. $CACHE_ASS_PATH.'" ../runtime/cache/'.$timeStr.'.gif';

                system($command, $error);
                var_dump($error);

tp框架里运行这个指令 不能使用绝对路径,只能使用public下的相对路径,退出一层后 找到cache路径

发表在 php | 留下评论

怎么在VS Code编辑器玩转PHP开发 支持类跳转

https://zhuanlan.zhihu.com/p/359984466

这是一份VS Code轻量级PHP开发环境

配置方案,通过在VS Code中安装PHP开发相关插件,实现代码格式化、自动补全代码、类方法定位、php调试、预览与历史版本找回扥功能以满足良好的php开发环境。

在使用该方案前,提前配置好PHP运行环境,php版本至少7以上,当前方案版本8。

  1. 预先配置php.exe可执行文件
    在软件左下角 齿轮-> setting 搜索 php,edit in setting
    输入php的俩路径

    {
    "php.validate.executablePath": "E:/php/env/php-8.0.3/php.exe",
    "php.executablePath": "E:/php/env/php-8.0.3/php.exe"
    }
  2. 实现代码格式化、提示、补全、类方法定位等

(1. 装PHP Intelephense智能感知插件

在软件左侧的图标里找到第5个:插件 。
搜索:PHP Intelephense
点击安装。
(2. 配置PHP Intelephense

还是软件左下角的 齿轮 设置:搜索 PHP Intelephense
把需要的 edit in setting 都点一遍。保存即可。

重新打开项目的代码,发现可以使用鼠标点击函数 类的方法跳转了。

发表在 软件 | 留下评论

提取DVD的软件还是推荐:HandBrake

之前下载的两个
Setup_MakeMKV_v1.17.7.exe
VidCoder-7.15-Portable.exe
提取出来的视频都带有波浪波纹,转mp4之后就表现出来了。
格式工厂也提取不了。
还是推荐:HandBrake
全名:HandBrake-1.3.2-x86_64-Win_GUI.exe

发表在 软件 | 留下评论

js 文字无缝滚动 滚屏特效分析

https://blog.csdn.net/qq_39232387/article/details/107337189


需要手动创建一个一样的内容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .scrollCon {
                width: 500px;
                height: 150px;
                overflow: hidden;
            }
            ul,li {
                margin: 0;
                list-style: none;
            }
            li {
                height: 40px;
            }
        </style>
    </head>
    <body>
        <div class="scrollCon" id="scrollCon">
            <ul id="scrollCon1">
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
            </ul>
            <ul id="scrollCon2">

            </ul>
        </div>
        <script type="text/javascript">
            var conScroll = function(){
                var scrollCon = document.getElementById("scrollCon");
                var li = scrollCon.getElementsByTagName("li");
                var scrollCon1 = document.getElementById("scrollCon1");
                var scrollCon2 = document.getElementById("scrollCon2");
                if(li.length > 3){
                    scrollCon2.innerHTML = scrollCon1.innerHTML;
                    scrollCon.scrollTop = 0;
                    function rollStart(){
                        if(scrollCon.scrollTop >= scrollCon1.scrollHeight){
                            scrollCon.scrollTop = 0;
                        }else{
                            scrollCon.scrollTop++;
                        }
                    }
                    var timer = setInterval(rollStart, 50);
                    scrollCon.onmouseover = function(){
                        clearInterval(timer);
                    }
                    scrollCon.onmouseout = function(){
                        timer = setInterval(rollStart, 50);
                    }
                }
            };
            conScroll();
        </script>
    </body>
</html>

以上demo其实并不完美,调试发现:
两个滚动的容器必须设置高度,而且最终结果发现滚动到一半就无法继续移动。
在纯demo里是没问题,但在使用场景里却不兼容。
故改成以下demo,用css的transform实现移动更加流畅

var conScroll = function(){
                    var mouseObj = parentBoxNode;
                    var moveObj = moveBox1Node;
                    var secondObj = moveBox2Node;
                    moveObj.style.transform = 'translateY(0px)';
                    var currentTop = 0;
                    function rollStart(){
                        if(Math.abs(currentTop) >= 262){
                            currentTop = 0;
                            moveObj.style.transform = 'translateY(0px)';
                            secondObj.style.transform = 'translateY(0px)';
                        } else {
                            currentTop --;
                            moveObj.style.transform = 'translateY(' + currentTop + 'px)';
                            secondObj.style.transform = 'translateY(' + currentTop + 'px)';
                        }
                    }
                    var timer = setInterval(rollStart, 50);
                    mouseObj.onmouseover = function(){
                        clearInterval(timer);
                    }
                    mouseObj.onmouseout = function(){
                        timer = setInterval(rollStart, 50);
                    }
                };
                conScroll();
发表在 js | 留下评论

phpstorm 2024.2新版本的文件路径面板屑位置跑到底部了,教你如何修改

吐槽一下 今天的破解版本又被和谐了,于是找了一个新的破解版本,升级到2024.2版发现文件的面包屑跑到底部了,自己研究一下发现了方法:

在底部右键: navigation bar -> top
即可。

发表在 php | 留下评论