<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014771745的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014771745</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014771745]]></copyright><item><title><![CDATA[Debian12 服务器自动休眠问题（已解决）]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/148492484</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/148492484</guid><author>u014771745</author><pubDate>Sat, 07 Jun 2025 11:04:36 +0800</pubDate><description><![CDATA[没有那么多花里胡哨，就那么简单配置就解决，已经过测试！]]></description><category></category></item><item><title><![CDATA[如何解决 ResizeObserver 兼容低版本浏览器问题]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/138796997</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/138796997</guid><author>u014771745</author><pubDate>Mon, 13 May 2024 12:19:32 +0800</pubDate><description><![CDATA[关于解决浏览器兼容问题，网上一大堆教程，但是从来没说到点子上去，要么就是少说了导致一直找不到问题原因，那么让我们开始吧。]]></description><category></category></item><item><title><![CDATA[如何优雅的实现浏览器多标签通讯]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/138577187</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/138577187</guid><author>u014771745</author><pubDate>Wed, 08 May 2024 16:34:41 +0800</pubDate><description><![CDATA[管理员登陆后，其他打开标签的页面登陆状态要变更课堂页面只能打开一个，另一个则通知失效等等。。。场景然而实现该功能，我们需要使用页面能共同持有的渠道或者Cookie进行判断，不可避免的要实现一堆代码，但是现在都过去了，我们有了更好的封装组件只需要简单的引入即可。]]></description><category></category></item><item><title><![CDATA[如何优雅的实现 iframe 多层级嵌套通讯]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/138190046</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/138190046</guid><author>u014771745</author><pubDate>Thu, 25 Apr 2024 16:20:24 +0800</pubDate><description><![CDATA[在前端开发项目中，不可避免的总会和iframe进行打交道，我们通常会使用实现消息通讯。iframe父子通讯iframe同层级通讯iframe嵌套层级通讯当面对这种复杂的情况的时候，通讯不可避免成为复杂问题。]]></description><category></category></item><item><title><![CDATA[关于VueCli项目中如何加载调试Worker和SharedWorker]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/137352783</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/137352783</guid><author>u014771745</author><pubDate>Wed, 03 Apr 2024 17:56:22 +0800</pubDate><description><![CDATA[关于VueCli项目中如何加载调试Worker和SharedWorker]]></description><category></category></item><item><title><![CDATA[关于在手机端各类机型，浏览器图片上传兼容问题]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/134828890</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/134828890</guid><author>u014771745</author><pubDate>Wed, 06 Dec 2023 12:58:54 +0800</pubDate><description><![CDATA[关于在手机端各类机型，浏览器图片上传兼容问题]]></description><category></category></item><item><title><![CDATA[配置Coding私有制品库Yarn和NPM]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/134808411</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/134808411</guid><author>u014771745</author><pubDate>Tue, 05 Dec 2023 15:21:46 +0800</pubDate><description><![CDATA[【代码】配置Coding私有制品库Yarn和NPM。]]></description><category></category></item><item><title><![CDATA[Vue单页应用路由返回参数记忆处理方式（推荐）]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/128531888</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/128531888</guid><author>u014771745</author><pubDate>Tue, 03 Jan 2023 13:52:17 +0800</pubDate><description><![CDATA[实现原理，通过注入 Mixin 的方式，通过判断路由是否子页面返回，如果是则调用返回进入方法，否则调用其他方法，通过监听路由离开，记录需要记录的参数，通过SessionStorage记录避免被别的应用混淆，然后在返回进入页面的情况下传入方法。Vue页面中调用方法。]]></description><category></category></item><item><title><![CDATA[Js使用水桶简单方便实现同步加载]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/110475251</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/110475251</guid><author>u014771745</author><pubDate>Wed, 02 Dec 2020 11:29:21 +0800</pubDate><description><![CDATA[场景

需要所有接口加载完毕后再进行处理事情
需要优化多个 http/IO 接口嵌套导致性能变慢
需要多个任务完成后再进行处理回调

看代码
/*
 * 无数据水桶（仅用于同步加载回调）
 */
function pail(len) {
    return {
        len: len,
        num: 0,
        t_fun: null,
        c_fun: null,
        // 设置正确回调
        then: function (fun) {]]></description><category></category></item><item><title><![CDATA[史上最叼PHP实现布隆过滤器]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/110429357</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/110429357</guid><author>u014771745</author><pubDate>Tue, 01 Dec 2020 13:33:19 +0800</pubDate><description><![CDATA[简介
先放代码了

/**
 * BitSet 模拟BitSet 在PHP中可以使用PHP代替
 */
class BitSet {
    protected $bit = [];

    public function add($index) {
        $this-&gt;bit[$index] = 1;
    }

    public function has($index) {
        if(isset($this-&gt;bit[$index])) {
          ]]></description><category></category></item><item><title><![CDATA[史上最屌JS的原型和原型链]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/105689456</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/105689456</guid><author>u014771745</author><pubDate>Thu, 20 Aug 2020 15:31:51 +0800</pubDate><description><![CDATA[构造函数创建对象：
function Person() {

}
var person = new Person();
person.name = 'Kevin';
console.log(person.name) // Kevin

Person 就是一个构造函数，我们使用 new 创建了一个实例对象 person
prototype
每个函数都有一个 prototype 属性
每一个JavaS...]]></description><category></category></item><item><title><![CDATA[PHP金额转换成分互转]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/106475339</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/106475339</guid><author>u014771745</author><pubDate>Mon, 01 Jun 2020 16:27:46 +0800</pubDate><description><![CDATA[/**
 * @param int|string $var
 * @return string
 */
function intToFloat($var) {
	$var = floatval($var);
	$var = $var / 100.00;
	return round($var, 2);
}

/**
* @param float|string $var
* @return float|int
*/
function floatToInt($var) {
	$var =  floatval($v]]></description><category></category></item><item><title><![CDATA[PHP完美合并多维数组]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/106440313</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/106440313</guid><author>u014771745</author><pubDate>Sat, 30 May 2020 13:28:14 +0800</pubDate><description><![CDATA[/**
 * 是否索引数组
 * @param array $arr
 * @return bool
 */
function is_assoc(&amp;$arr) {
    return (bool) count(array_filter(array_keys($arr), 'is_string'));
}

/**
 * 合并两个多维数组
 * @param array $a1
 * @param array $a2
 * @return array
 */
function array_merge]]></description><category></category></item><item><title><![CDATA[PHP实现版本号整数和字符串互转]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/106357841</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/106357841</guid><author>u014771745</author><pubDate>Tue, 26 May 2020 15:48:23 +0800</pubDate><description><![CDATA[版本号格式
000.000.000

请查看代码
/**
 * 版本号转整数 例如　1.0.0=001.000.000=001000000=1000000
 * @param string $ver
 * @return int
 */
function versionToInteger($ver) {
    $ver = explode(".", $ver);
    $v1 = sprintf('%03s', (int) $ver[0] ?? 0);
    $v2 = sprintf('%03s',]]></description><category></category></item><item><title><![CDATA[JQ 序列化后数组表单后 的字符串转换为数组 Json]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/105861350</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/105861350</guid><author>u014771745</author><pubDate>Thu, 30 Apr 2020 14:46:47 +0800</pubDate><description><![CDATA[＃需求背景
１．如果表单　&lt;input /&gt;　的　name　等于数组类型的时候　例如
&lt;input type="checkbox" name="plugins[0][multi_merchant]" title="多商户" checked&gt;
&lt;input type="checkbox" name="plugins[1][multi_merchant]" title="...]]></description><category></category></item><item><title><![CDATA[关于微信公众号短链接数量和时效说明]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/103522700</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/103522700</guid><author>u014771745</author><pubDate>Fri, 13 Dec 2019 10:43:59 +0800</pubDate><description><![CDATA[关于微信公众号短链接数量和时效说明

经过测试 微信公众号.短链接 的时效是 经过三天后仍然可以访问 判定是永久类型，根据短链接实现原理判定
经过测试 微信公众号.短链接 在 微信公众平台.接口权限 上面显示的数字 0/100000 代表的是 每天调用次数 而不是总数


...]]></description><category></category></item><item><title><![CDATA[短网址应用实现方式]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/103491774</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/103491774</guid><author>u014771745</author><pubDate>Wed, 11 Dec 2019 14:45:04 +0800</pubDate><description><![CDATA[短网址应用实现方式

众所周知，短网址是通过将用户的链接 通过算法进行缩短网址 并且返回 跳转地址
那么怎么去缩短这么长的一个英文+数字和符号的网址呢？，用 进制算法 明显还是太长了
所以，聪明的程序员 通过将用户的网址 存放到数据库中 那么当 只缩短数字ID 明显就很简单的了
例如，32位字母转换成5位字符的组合，通过 组合算法 我们就可以计算出 5位字符能容纳的地址长度
但是 地址这个数量是无...]]></description><category></category></item><item><title><![CDATA[EasyWechat 公众号 AccessToken 共享方案]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/103483478</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/103483478</guid><author>u014771745</author><pubDate>Tue, 10 Dec 2019 21:34:52 +0800</pubDate><description><![CDATA[EasyWechat 公众号 AccessToken 共享方案

配置 EasyWechat 缓存方式采用 Redis
例如 公众号 缓存 Cache Key 的生成方式如下

$cacheKey = "easywechat.kernel.access_token." . md5(json_encode([
    'grant_type' =&gt; 'client_credential',
 ...]]></description><category></category></item><item><title><![CDATA[第四方授权实现方式]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/103420228</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/103420228</guid><author>u014771745</author><pubDate>Fri, 06 Dec 2019 12:33:47 +0800</pubDate><description><![CDATA[准备工作

应用域名 http://dome.com + /page_10086
第四方授权域名 http://auth.com +  /auth/get

如果只有一个公众号和一个授权域名的话，请通过 Nginx 转发 ~/three_auth/ 到第四方授权应用


微信授权域名 http://wx.com + /auth

最终效果

例如应用的页面 http://dome.com/page...]]></description><category></category></item><item><title><![CDATA[PHP颜色十六进制转化为RGB]]></title><link>https://blog.youkuaiyun.com/u014771745/article/details/103108351</link><guid>https://blog.youkuaiyun.com/u014771745/article/details/103108351</guid><author>u014771745</author><pubDate>Sun, 17 Nov 2019 14:13:25 +0800</pubDate><description><![CDATA[PHP颜色十六进制转化为RGB
function hColor2RGB($hexColor)
{
	$color = str_replace('#', '', $hexColor);
	if (strlen($color) &gt; 3) {
		$rgb = array(
			'r' =&gt; hexdec(substr($color, 0, 2)),
			'g' =&gt; hexdec...]]></description><category></category></item></channel></rss>