<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u013473997的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013473997</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013473997]]></copyright><item><title><![CDATA[htaccess 301重定向]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/144475779</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/144475779</guid><author>u013473997</author><pubDate>Sat, 14 Dec 2024 20:25:03 +0800</pubDate><description><![CDATA[1、出于SEO考虑，将wangqu.org重定向至www.wangqu.org。本站就使用了这种重定向的方法避免页面权重分散。上面这一句话是从反面来写的：如果域名不是带WWW的，就统一301跳转到带WWW的域名中去。务必注意：在编辑之前请备份原来的htaccess文件，以免造成损失。如果是带WWW的域名间跳转，则以此类推，在域名前加上WWW即可。]]></description><category></category></item><item><title><![CDATA[微信浏览器页面调试]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/144475762</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/144475762</guid><author>u013473997</author><pubDate>Sat, 14 Dec 2024 20:23:43 +0800</pubDate><description><![CDATA[3.手机进入微信随便打开一个聊天窗口输入并发送：   http://debugxweb.qq.com/?chrome内核的浏览器输入chrome://inspect/#devices。edge浏览器输入：edge://inspect/#devices。5.电脑上打开chrome内核的浏览器或edge浏览器。点击打开这个链接，弹出“执行成功”，即可。4.手机微信打开想要抓包调试的网页。1.首先用数据线把手机连接到电脑。2.手机打开USB调试。]]></description><category></category></item><item><title><![CDATA[sudo 用户切换]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/139716524</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/139716524</guid><author>u013473997</author><pubDate>Sun, 16 Jun 2024 10:32:45 +0800</pubDate><description><![CDATA[切换到centos 用户。]]></description><category></category></item><item><title><![CDATA[canvas提取视频文件封面帧]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/134706563</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/134706563</guid><author>u013473997</author><pubDate>Thu, 30 Nov 2023 10:43:19 +0800</pubDate><description><![CDATA[在oncanplay里调用绘制关键帧的函数最后就是在选择文件后根据要求调用函数生成对应的封面图// 间隔1秒生成10张封面图i < 10;i++) {]]></description><category></category></item><item><title><![CDATA[centos 安装composer]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/130339283</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/130339283</guid><author>u013473997</author><pubDate>Mon, 24 Apr 2023 11:37:35 +0800</pubDate><description><![CDATA[1、下载2、安装3、删除安装包4、全局安装。]]></description><category></category></item><item><title><![CDATA[PHP判断IP是否属于某个网段]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/127872029</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/127872029</guid><author>u013473997</author><pubDate>Tue, 15 Nov 2022 19:22:27 +0800</pubDate><description><![CDATA[PHP判断IP是否属于某个网段]]></description><category></category></item><item><title><![CDATA[crontab定时任务]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/119295454</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/119295454</guid><author>u013473997</author><pubDate>Sun, 01 Aug 2021 10:49:03 +0800</pubDate><description><![CDATA[先看一张图把，最容易忘的定时任务各个字段的含义



添加新的定时任务

crontab -e 以当前用户添加定时任务

crontab -u soymilk e 以soymilk用户添加定时任务

实例

实例1：每1分钟执行一次command

命令：

*****command



实例2：每小时的第3和第15分钟执行

命令：

3,15****command



实例3：在上午8点到11点的第3和第15分钟执行

命令：

3,158-11***command

...]]></description><category></category></item><item><title><![CDATA[php根据年月获取当月天数及日期数组的方法]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/119043424</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/119043424</guid><author>u013473997</author><pubDate>Fri, 23 Jul 2021 20:03:34 +0800</pubDate><description><![CDATA[/**

* 获取当月天数

* @param $date

* @param $rtype 1天数 2具体日期数组

* @return

*/

function get_day( $date ,$rtype = '1') 

{

    $tem = explode('-' , $date);    //切割日期 得到年份和月份

    $year = $tem['0'];

    $month = $tem['1'];

    if( in_array($month , array( 1 .]]></description><category></category></item><item><title><![CDATA[Javascript判断扫码枪的输入]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/115323482</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/115323482</guid><author>u013473997</author><pubDate>Tue, 30 Mar 2021 13:45:45 +0800</pubDate><description><![CDATA[条码扫描器其实就是一种输入设备，跟键盘一样。在控制台打印扫描过程，可以看出，扫描过程就像是在键盘上敲击相应的键，keycode和键盘是一一对应的，只是输入速度(间隔时间)比物理键盘输入要快得多。我们可以通过监听输入间隔时间，来判断到底是键盘输入还是扫描输入。

扫码枪输入的时间间隔一般在10毫秒以内，物理键盘输入要远大于这个数值，通常为80毫秒以上。因此，当输入间隔时间小于30毫秒时，判断为扫码枪输入，其余情况判断为键盘输入。


let lastTime = null;
let nextTime = nu]]></description><category></category></item><item><title><![CDATA[js 数组去重，及获取重复值]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/113760753</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/113760753</guid><author>u013473997</author><pubDate>Mon, 08 Feb 2021 18:16:16 +0800</pubDate><description><![CDATA[数组去重方法1


// 数组去重
function unique(arr) {
    var result = [], hash = {};
    for (var i = 0, elem; (elem = arr[i]) != null; i++) {
        if (!hash[elem]) {
            result.push(elem);
            hash[elem] = true;
        }
    }
    return result;
}]]></description><category></category></item><item><title><![CDATA[更换路由器之后，ftp无法上传和下载数据]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/109697243</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/109697243</guid><author>u013473997</author><pubDate>Sat, 14 Nov 2020 21:51:01 +0800</pubDate><description><![CDATA[windows ftp ls无数据，报错"200 PORT command successful. Consider using PASV."解决

排除解决：

电脑连接无线网络，属性设置为“公用”导致，修改为“专用”，重新ftp连接恢复正常。
]]></description><category></category></item><item><title><![CDATA[php7.4安装zip]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/109697173</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/109697173</guid><author>u013473997</author><pubDate>Sat, 14 Nov 2020 21:49:01 +0800</pubDate><description><![CDATA[如果不存在libzip先安装

yum list | grep libzip

yum -y install libzip5.x86_64



查找安装包 yum search php74|grep zip

yum install php74-php-pecl-zip.x86_64

安装后如果还是没有先查找

find / -name zip.so

找到之后添加到php.ini

extension=/opt/remi/php74/root/usr/lib64/php/modules/zip....]]></description><category></category></item><item><title><![CDATA[每隔4位加一个空格，并修正光标位置]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/99439772</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/99439772</guid><author>u013473997</author><pubDate>Tue, 13 Aug 2019 15:24:03 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head lang="en"&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;银行卡号4位空格&lt;/title&gt;
    &lt;script src="http://j2.58cdn.com.cn/js/jquery-1.8.3.js"&gt;&...]]></description><category></category></item><item><title><![CDATA[低表示差异(LRG)]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/86659855</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/86659855</guid><author>u013473997</author><pubDate>Sat, 26 Jan 2019 18:40:21 +0800</pubDate><description><![CDATA[我们开发的应用软件实际上是对现实世界的模拟，因此，软件世界与现实世界存在着必然的联系。当我们在进行需求分析的时候，需求分析员实际上是从客户那里在了解现实世界事物的规则、工作的流程。

如果我们在软件分析和设计的过程中，将软件世界与现实世界紧密地联系到一起，我们的软件将更加本色地还原事物最本质的规律。这样的设计，就称之为“低表示差异”。

采用“低表示差异”进行软件设计，现实世界有什么事物，就映射为...]]></description><category></category></item><item><title><![CDATA[面向对象该如何设计]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/85949417</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/85949417</guid><author>u013473997</author><pubDate>Sun, 06 Jan 2019 20:52:00 +0800</pubDate><description><![CDATA[考虑这个问题，先考虑为什么编程思想要进化。

其实初衷很简单——告别ctrl+c,ctrl+v。两个字概括重用。

为了保证代码的可重用性，我们需要对业务进行解耦，降低业务的耦合度，那么首先我们需要封装模块。

面向对象的第一个特征就是有一定弹性的封装，与function或结构这样的封装体不同，面向对象的类可以很灵活的通过private,public,protect限制访问。

那么有了类，考虑在...]]></description><category></category></item><item><title><![CDATA[PHP设计模式之数据对象映射模式]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/85126948</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/85126948</guid><author>u013473997</author><pubDate>Thu, 20 Dec 2018 16:48:49 +0800</pubDate><description><![CDATA[数据映射模式使您能更好的组织你的应用程序与数据库进行交互。

数据映射模式将对象的属性与存储它们的表字段间的结合密度降低。数据映射模式的本质就是一个类，它映射或是翻译类的属性或是方法到数据库的相应字段，反之亦然。

数据映射的作用（工作）就在于能对双方所呈现出的信息的理解，并能对信息的存取进行控制，如根据存储在数据表中的信息，重建新的域对象，或是用域对象的信息来更新或删除数据表中的相关数据。

对...]]></description><category></category></item><item><title><![CDATA[php类中为什么设置set和get方法操作属性]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/84202790</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/84202790</guid><author>u013473997</author><pubDate>Sun, 18 Nov 2018 18:02:34 +0800</pubDate><description><![CDATA[php程序规范中会建议大家尽量将类中的属性私有化，即定义为private变量，通过设置set和get函数来对属性进行操作。一些人存在这样的疑问，为什么不直接将属性设置为public，以后调用属性时直接通过对象进行访问不是更方便？

当然php中这样做有它的原因：

1  将数据与行为分离，也就是php的面向对象的概念。
   对象就是属性+行为，封装就是把对象的私有属性封装起来，只有通过自己公开的...]]></description><category></category></item><item><title><![CDATA[ThinkPHP 事务处理 （事务回滚） 、异常处理]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/83154315</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/83154315</guid><author>u013473997</author><pubDate>Thu, 18 Oct 2018 22:35:08 +0800</pubDate><description><![CDATA[
$trans_result = true;
                $trans = M();
                $trans-&amp;gt;startTrans();   // 开启事务

                try {   // 异常处理
                    // 更新实施
                    $busbidList = M...]]></description><category></category></item><item><title><![CDATA[PHP代码修改后提交，无法立即生效]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/82893994</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/82893994</guid><author>u013473997</author><pubDate>Sat, 29 Sep 2018 10:34:53 +0800</pubDate><description><![CDATA[今天遇到一个坑爹的问题，就是我修改了PHP代码，提交到网站根目录以后，刷新浏览器居然无法立即生效，差不多得一分钟的样子再去刷新，才会看到更改后的效果。

出现这个问题的原因，是因为手头的项目需要较高的PHP版本，所以对PHP的版本进行了切换，然后就出现了问题。

最开始还以为是apache的问题，所以各种百度这方面的关键词，可是一无所获，心中着实郁闷。后来放弃了apache的关键词，依然找不到解决...]]></description><category></category></item><item><title><![CDATA[同层依赖问题 可以考虑加个Facade]]></title><link>https://blog.youkuaiyun.com/u013473997/article/details/82875043</link><guid>https://blog.youkuaiyun.com/u013473997/article/details/82875043</guid><author>u013473997</author><pubDate>Thu, 27 Sep 2018 23:21:56 +0800</pubDate><description><![CDATA[
UserService {
  // CRUD
  boolean isExists(String userId);
}

MailService {
  void send(Mail mail);
}

UserExistsCheckMailService {
  UserService userService;
  MailService mailService;
  void send(M...]]></description><category></category></item></channel></rss>