<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[EMLOG实验室]]></title> 
<atom:link href="http://em.chenziwen.cn/help/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[使用emlog搭建的站点]]></description>
<link>http://em.chenziwen.cn/help/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
    <title>MYSQL常用语句</title>
    <link>http://em.chenziwen.cn/help/?post=61</link>
    <description><![CDATA[<p>根据条件求和（根据时间戳转月份求和）</p>
<pre><code class="language-sql">SELECT SUM( money )
FROM `dr_member_cashlog`
WHERE FROM_UNIXTIME( paytime, '%Y-%m' ) = '2024-04'</code></pre>]]></description>
    <pubDate>Wed, 15 May 2024 15:42:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=61</guid>
</item>
<item>
    <title>免费引入商用黑体字体系列整理及 CSS 字体引入亲妈式教程</title>
    <link>http://em.chenziwen.cn/help/?post=60</link>
    <description><![CDATA[<p>由于微软雅黑的设计太过老旧，所以很多网站在设置font-family字体家族时，都会首先引入苹果的苹方字体（PingFang SC）。一来为了照顾 MAC，二来可以改善 Windows 上显示效果（已安装苹方字体的前提）。现在，一些厂商会在官网上引入自己研发的字体。感谢各大厂商没有禁止 woff 字体文件跨域使用，可以让我们白嫖，因为你们的字体是真的漂亮，并且以下字体可以免费商用。</p>
<h3>1.字体列表及引用链接</h3>
<p>鸿蒙字体 - B 站</p>
<pre><code class="language-html">400 字重 CSS：//s1.hdslb.com/bfs/static/jinkela/long/font/regular.css
500 字重 CSS：//s1.hdslb.com/bfs/static/jinkela/long/font/medium.css</code></pre>
<h3>华康金刚黑 - 字节跳动</h3>
<pre><code class="language-html">字重 CSS：//fonts.bytedance.com/dfd/api/v1/css?family=DFPKingGothicGB-Regular&amp;display=swap
500 字重 CSS：//fonts.bytedance.com/dfd/api/v1/css?family=DFPKingGothicGB-medium&amp;display=swap</code></pre>
<h3>思源黑体 - 谷歌字体库</h3>
<pre><code class="language-html">可变字重 CSS：//fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&amp;display=swap
该 CSS 可以通过链接控制字重，比如我只想要 400 字重，那么在链接@400;500;700 部分修改为@400，增加同理。</code></pre>
<h3>小米字体 - 小米 MIUI 官网</h3>
<pre><code class="language-html">可变字重 CSS：//font.sec.miui.com/font/css?family=MiSans:400,500,700:Chinese_Simplify,Latin&amp;display=swap
该 CSS 可以通过链接控制字重，比如我只想要 400 字重，
那么在链接 MiSans:400,500,700 部分修改为 MiSans:400，增加同理。</code></pre>
<h3>OPPO 字体 - OPPO 网站</h3>
<pre><code class="language-html">400 字重 WOFF2：//www.oppo.com/content/dam/oppo/common/fonts/font2/new-font/OPPOSansOS2-5000-Regular.woff2
500 字重 WOFF2：//www.oppo.com/content/dam/oppo/common/fonts/font2/new-font/OPPOSansOS2-5000-Medium.woff2
该部分为 woff2 字体文件与上述 css 引入方式不同，具体看下述说明。</code></pre>
<h3>OPPO 字体 - MasterGo 网站</h3>
<pre><code class="language-html">400 字重 WOFF2：//static.mastergo.com/static/font/OPPOSans/OPPOSans-Regular.woff2
500 字重 WOFF2：//static.mastergo.com/static/font/OPPOSans/OPPOSans-Medium.woff2
600 字重 WOFF2：//static.mastergo.com/static/font/OPPOSans/OPPOSans-Bold.woff2
700 字重 WOFF2：//static.mastergo.com/static/font/OPPOSans/OPPOSans-Heavy.woff2

该部分为 woff2 字体文件与上述 css 引入方式不同，具体看下述说明。</code></pre>
<h3>阿里巴巴普惠体 - 阿里巴巴网站</h3>
<pre><code class="language-html">该部分查看 https://fonts.alibabagroup.com/#/font</code></pre>
<h2>2.引入字体方式</h2>
<p>CSS 文件</p>
<pre><code class="language-css">方式一、在 html 中直接引入：
&lt;link rel='stylesheet' href='.css'&gt;

方式二、在 css 中引入：
@import url('.css');</code></pre>
<p>woff 文件</p>
<pre><code class="language-css">在 css 中引入
@font-face {
 font-family: OPPOSans; //定义字体名称
 font-weight: 400; //定义字重
 font-display: swap;
 src:url('.woff2') format('woff2'); //字体链接
}</code></pre>
<p><strong>上述字体列表链接中，若是 css 链接可直接引用，若是 woff 字体链接需在你的 css 文件中引入。</strong></p>
<h2>3.引用字体方式</h2>
<p>引入字体文件后，在需要使用的元素处设定 css 属性 font-family 中输入字体名称即可</p>
<h2>4.字重说明</h2>
<p>浏览器默认字重 400，假如对标题想要使用粗体该如何操作呢？在设定字体字重时会有两种不同的呈现效果方式。</p>
<p><strong>情况一、对不同字重文件使用相同字体名称引入</strong></p>
<pre><code class="language-html">例如下述两个不同字重文件都使用 OPPO-Sans 名称：
@font-face {
 font-family: OPPO-Sans;
 font-weight: 400;
 font-display: swap;
 src: url(//static.mastergo.com/static/font/OPPOSans/OPPOSans-Regular.woff2) format('woff2');
}
@font-face {
 font-family: OPPO-Sans;
 font-weight: 500;
 font-display: swap;
 src: url(//static.mastergo.com/static/font/OPPOSans/OPPOSans-Medium.woff2) format('woff2');
}</code></pre>
<p>那么在对 h1 这个部分引用时，如何使用字重 500 的字体呢？只需要设定 font-weight 属性为 500 即可。即下述：</p>
<pre><code class="language-html">普通元素在引入 400 字重时
div {
 font-weight: 400;
}
标题元素在引入 500 字重时
h1 {
 font-weight: 500;
}</code></pre>
<p>情况二、对不同字重文件使用不同字体名称引入</p>
<pre><code class="language-html">例如下述两个不同字重文件使用不同字体名称：
@font-face {
 font-family: OPPO-Sans-Regular;
 font-weight: 400;
 font-display: swap;
 src: url(//static.mastergo.com/static/font/OPPOSans/OPPOSans-Regular.woff2) format('woff2');
}
@font-face {
 font-family: OPPO-Sans-Medium;
 font-weight: 500;
 font-display: swap;
 src: url(//static.mastergo.com/static/font/OPPOSans/OPPOSans-Medium.woff2) format('woff2');
}</code></pre>
<p>那么在引用时，只能使用当初设定该字重的字体名称。即下述：</p>
<pre><code class="language-html">普通元素在引入 400 字重时
div {
 font-family: OPPO-Sans-Regular;
}
标题元素在引入 500 字重时
h1 {
 font-family: OPPO-Sans-Medium;
}</code></pre>
<h2>5.font-display: swap 说明</h2>
<p>你会发现很多引入字体的文件都会标注这个属性，它的作用是在没有加载出字体前，优先加载本地字体进行渲染，避免网页出现空屏。</p>
<h2>6.字体文件格式</h2>
<p>本文一律使用 woff2 字体格式，在如今浏览器趋于 Chromium 内核的潮流下，作为个人站点可以不需要考虑旧版本浏览器的兼容性。</p>
<h2>7.结语</h2>
<p>就 windows 上的清晰效果而言，无论你使用何种字体，都没有在 windows 经过特殊优化的微软雅黑更好。如今当你在 windows 安装苹方字体后，你会发现苹方字体的显示效果也十分漂亮，这是因为科技的进步使得显示器分辨率越来越清晰。所以就算使用没有在 Windows 经过特殊优化的字体，也会在 Windows 上大放异彩。</p>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:48:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=60</guid>
</item>
<item>
    <title>jQuery实现图片懒加载</title>
    <link>http://em.chenziwen.cn/help/?post=59</link>
    <description><![CDATA[<p>当访问一个页面的时候，先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径（这样就只需请求一次），当图片出现在浏览器的可视区域内时，才设置图片真正的路径，让图片显示出来。这就是图片懒加载。</p>
<p><strong>通俗一点：</strong></p>
<p>1、就是创建一个自定义属性data-src存放真正需要显示的图片路径，而img自带的src放一张大小为1 * 1px的图片路径。<br />
2、当页面滚动直至此图片出现在可视区域时，用js取到该图片的data-src的值赋给src。 ps：自定义属性可以取任何名字</p>
<p><strong>HTML代码如下：</strong></p>
<pre><code class="language-html">&lt;img data-src="真正要加载的图片地址" src="这个是占位图,如等待加载图" &gt;</code></pre>
<p>jq代码：</p>
<pre><code class="language-javascript">&lt;script&gt;

start()

$__(window).on('scroll', function(){
    start()
})

function start(){
    $('.pics_content img').not('[data-isLoaded]').each(function(){
        var $node = $(this)
        if( isShow($node) ){
            loadImg($node)
        }
    })
}

//判断一个元素是不是出现在窗口(视野)
function isShow($node){
    return $node.offset().top &lt;= $(window).height() + $(window).scrollTop()
}

//加载图片
function loadImg($img){
    $img.attr('src', $img.attr('data-src')) //把data-src的值 赋值给src
    $img.attr('data-isLoaded', 1)//已加载的图片做标记
}
&lt;/script&gt;</code></pre>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:46:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=59</guid>
</item>
<item>
    <title>mysql 修改字段值等于另一字段值或另一字段值的拼接</title>
    <link>http://em.chenziwen.cn/help/?post=58</link>
    <description><![CDATA[<pre><code class="language-sql">update  表名 set `字段`=CONCAT(name,'11',keyword);</code></pre>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:45:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=58</guid>
</item>
<item>
    <title>在微信浏览器字体被调大导致页面错乱的解决办法</title>
    <link>http://em.chenziwen.cn/help/?post=57</link>
    <description><![CDATA[<p>iOS的解决方案是覆盖掉微信的样式：</p>
<pre><code class="language-html">body { /* IOS禁止微信调整字体大小 */
    -webkit-text-size-adjust: 100% !important;
}</code></pre>
<p>安卓的解决方案是通过 WeixinJSBridge 对象将网页的字体大小设置为默认大小，并且重写设置字体大小的方法，让用户不能在该网页下设置字体大小：</p>
<pre><code class="language-javascript">(function () {
    if (typeof WeixinJSBridge == "object" &amp;&amp; typeof WeixinJSBridge.invoke == "function") {
        handleFontSize();
    } else {
        if (document.addEventListener) {
            document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
        } else if (document.attachEvent) {
            document.attachEvent("WeixinJSBridgeReady", handleFontSize);
            document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
        }
    }
    function handleFontSize() {
        WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
        WeixinJSBridge.on('menu:setfont', function () {
            WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
        });
    }
})();

(function() {

    if (typeof WeixinJSBridge == "object" &amp;&amp; typeof WeixinJSBridge.invoke == "function") {
        handleFontSize();
    } else {
        if (document.addEventListener) {
            document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
        } else if (document.attachEvent) {
            document.attachEvent("WeixinJSBridgeReady", handleFontSize);
            document.attachEvent("onWeixinJSBridgeReady", handleFontSize);  }
        }

        function handleFontSize() {
            // 设置网页字体为默认大小
            WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize' : 0 });
            // 重写设置网页字体大小的事件
            WeixinJSBridge.on('menu:setfont', function() {
                WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize' : 0 });
            });
        }
})();</code></pre>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:38:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=57</guid>
</item>
<item>
    <title>锚点定位—如何设置锚点居页面顶部距离，锚点定位并距离顶部一定偏移</title>
    <link>http://em.chenziwen.cn/help/?post=56</link>
    <description><![CDATA[<p>锚点是网页制作中超级链接的一种，又叫命名锚记。命名锚记像一个迅速定位器一样是一种页面内的超级链接，运用相当普遍。</p>
<p>使用命名锚记可以在文档中设置标记，这些标记通常放在文档的特定主题处或顶部。然后可以创建到这些命名锚记的链接，这些链接可快速将访问者带到指定位置。</p>
<p>创建到命名锚记的链接的过程分为两步。首先，创建命名锚记，然后创建到该命名锚记的链接。</p>
<p>1.普通锚点</p>
<pre><code class="language-html">&lt;a href="#aboutmao" &gt;锚点链接&lt;/a&gt;
...
&lt;div id="aboutmao"&gt;锚点跳转到这里&lt;/div&gt;</code></pre>
<p>这些是可以实现完美的锚点功能，但是如果我网页的header一直固定在顶部，这是锚点链接过去就需要居顶一个header的距离，不然链接过去一部风内容会被header遮挡。</p>
<p>这个问题用js解决是最方便的：</p>
<pre><code class="language-javascript">&lt;a href="javascript:;" class="aboutmao"&gt;关于我们&lt;/a&gt;

&lt;div id="about"&gt;锚点跳转到这里&lt;/div&gt;

&lt;script&gt;
    $(document).ready(function () {

      function topMao(target) {
        $('html, body').animate({
          scrollTop: $(target).offset().top - $('.topnav').height() //顶部固定导航
        }, 500); //130为锚点到距顶部的距离，500为执行时间
        return false;
      }

      $('.aboutmao').click(function () {
        topMao('#about');
      })

    })
&lt;/script&gt;</code></pre>
<p>锚点的点击事件，然后获取此 id 距离网页顶端的距离，减去header的高度，最后用window.scrollTo直接滑动到锚点位置。已在ie10+、火狐 、谷歌浏览器上测试ok。</p>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:34:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=56</guid>
</item>
<item>
    <title>mysql修改记录时update操作 字段=字段+字符串</title>
    <link>http://em.chenziwen.cn/help/?post=55</link>
    <description><![CDATA[<p>在有些场景下，我们需要对我们的varchar类型的字段做修改，而修改的结果为两个字段的拼接或者一个字段+字符串的拼接。</p>
<pre><code class="language-sql">UPDATE `dr_1_blog` SET `url`=concat('abcd',id) WHERE id='1'</code></pre>
<p>补充：mysql中使用update同时更新多个字段，包括select查询</p>
<p>错误尝试：</p>
<pre><code class="language-sql">update 表名 set(字段1,字段2,字段3,...) = (select 数值1,数值2,数值3,...) where 条件</code></pre>
<p>正确方式：</p>
<pre><code class="language-sql"># 不使用select情况
UPDATE OldData o, NewData n
SET o.name = n.name, o.address = n.address
where n.nid=234 and o.id=123;

# 使用select情况
UPDATE OldData o, (select name, address from NewData where id = 123) n
SET o.name = n.name, o.address = n.address
where n.nid=234;</code></pre>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:32:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=55</guid>
</item>
<item>
    <title>网站搬家后，会有好多附件地址不变，附一个SQL语句，应用于phpmyadmin，批量修改</title>
    <link>http://em.chenziwen.cn/help/?post=54</link>
    <description><![CDATA[<pre><code class="language-sql">UPDATE `表名` SET `字段名` = REPLACE(`字段名`,'旧域名地址','新域名地址');</code></pre>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:31:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=54</guid>
</item>
<item>
    <title>宝塔申请部署TrustAsia免费SSL证书https访问</title>
    <link>http://em.chenziwen.cn/help/?post=53</link>
    <description><![CDATA[<p>宝塔现在一个账号只能申请3个SSL证书，超过后无法申请，只能自己申请https，方法如下：<br />
首先打开https://freessl.cn/，在首页输入你的域名，登录账号.</p>
<p><a href="http://em.chenziwen.cn/help/content/uploadfile/202312/c15e1702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-c15e1702628067.png" alt="" /></a></p>
<p>根据给出的信息，到域名解析商添加 CNAME 解析记录<br />
<a href="http://em.chenziwen.cn/help/content/uploadfile/202312/4e541702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-4e541702628067.png" alt="" /></a></p>
<p>回到freessl.cn，检查解析记录是否已经正确添加，并记录第三步中给出的命令<br />
<a href="http://em.chenziwen.cn/help/content/uploadfile/202312/5c6a1702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-5c6a1702628067.png" alt="" /></a></p>
<p>连接到你的服务器，在ssh终端中执行下面脚本。建议将邮箱换成你自己的：</p>
<pre><code class="language-html">curl https://get.acme.sh | sh -s email=my@example.com</code></pre>
<p><a href="http://em.chenziwen.cn/help/content/uploadfile/202312/ce371702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-ce371702628067.png" alt="" /></a></p>
<p>然后 关闭ssh窗口并重新连接服务器 ，执行刚刚在freessl.cn第三步中记录的命令<br />
<a href="http://em.chenziwen.cn/help/content/uploadfile/202312/c7e11702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-c7e11702628067.png" alt="" /></a></p>
<p>出现如图代表证书已经成功申请</p>
<p>打开宝塔面板中你要部署ssl的网站，随便部署一个证书上去（域名不需要相匹配，过期的证书也可以，或者用下面的证书） </p>
<p>证书：</p>
<pre><code class="language-html">-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIRAPJFqahnl0A/ijcJq5PgMVQwDQYJKoZIhvcNAQELBQAw
XjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU
ZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w
HhcNMjIwNDE0MDY0OTM1WhcNMjMwNDE0MDY0OTM1WjAdMQswCQYDVQQGEwJDTjEO
MAwGA1UEAxMFYnQuY24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9
3sUocsPsVdK6oMU689SO7L0Gjg6Z8QBqwqdP9lSKU6A5m/+LJ7qqQD1VcjAKEjTo
fBpmzfE+uvR51nh7qiB2IWHpF1JCTYPnriW/OgsdlPlutaTt8/vQuDBgFXj9C0oR
JUWTt9xNY0gIGzfEPQBeu7rer7M/un/BoIIUXtiQYeiTQMkuMZ6JZVFy243OJv8b
aulNbSeC290YdaxtuhCWjjYELGW1jxlwmDOT5EDaomYcg3CtRFhe9XVAV4ccf1HO
0hig0bfdeKQnv51R1XFCxdMSF/wAA2YI40Hb9BiTvfDXDg+ogxbd+Y3McMlELN70
nFS3i2D8zAHpOZ2JiWLJAgMBAAGjgdUwgdIwDgYDVR0PAQH/BAQDAgWgMB0GA1Ud
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBQogSYF0TQaP8Fz
D7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYBBQUHMAGGFWh0dHA6Ly9v
Y3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDovL2NhLm15c3NsLmNvbS9t
eXNzbHRlc3Ryc2EuY3J0MBsGA1UdEQQUMBKCCXd3dy5idC5jboIFYnQuY24wDQYJ
KoZIhvcNAQELBQADggEBAJpeC8oeH7Omyr4DauGE3JLkfLDjgs0iCxi7pgRhn0Rn
TxlYB8Rc0MAAUeoQAPgL+7Z1AYdxAhZbDz7u4QFjuw0DoJzWTTUUs8U43hA4mDhK
epGLBlS6KctQeiNiM4wdcGtEZkGzb1J3Lvpm4U2yUQYaYl/IlkzpxRcdoN4aKrEJ
b4qieVcQuA5jest11jx+FfF5CzEV03kjwSCSZDfYf+xobr/mTOnhXa6hEutEGE9i
Rd7z7grCRUXl4M0UNjei7XJGmMFxM8H0yZWIE1ji+86FziLySEZ7IUX+mL15bic9
CCzbqPEgeo5vjwW3iOXaDdj2Ofv7UUmiTbCJpj5nx8g=
-----END CERTIFICATE-----</code></pre>
<p>私钥：</p>
<pre><code class="language-html">-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAvd7FKHLD7FXSuqDFOvPUjuy9Bo4OmfEAasKnT/ZUilOgOZv/
iye6qkA9VXIwChI06HwaZs3xPrr0edZ4e6ogdiFh6RdSQk2D564lvzoLHZT5brWk
7fP70LgwYBV4/QtKESVFk7fcTWNICBs3xD0AXru63q+zP7p/waCCFF7YkGHok0DJ
LjGeiWVRctuNzib/G2rpTW0ngtvdGHWsbboQlo42BCxltY8ZcJgzk+RA2qJmHINw
rURYXvV1QFeHHH9RztIYoNG33XikJ7+dUdVxQsXTEhf8AANmCONB2/QYk73w1w4P
qIMW3fmNzHDJRCze9JxUt4tg/MwB6TmdiYliyQIDAQABAoIBAQCNyUmZxvogBoby
7xPZzjOw94DA4FxvANW649llkSHYmlJQMvpFxElU0dv7buYI30e7RNHCa4/3tEzU
nyAh2Q2cqZkgI1Y+RPx3ikiN4J5kXNdXoTWkrEojtygI2IAdFs0cuKSYhvhwoe8s
fobKeHNKSw5lNPe6Y178DQyWga1fQzOUivQsJi3CGnWSBoVFDAqUDEJLL0BQpww5
Ktr5nksLo2GT7zLkR/D9Aj8c17eqBDT58jqZsYHnEzNl4q9+2z/66uIuRmpQmgpb
AeWyl2UoaH9h0LfiRZZ8EpTbKitabXWIt6phSdvgguUQXn6tGHIWn5GLD8dqRLok
MoPm1m1xAoGBAMo3VcEI1PriSU/+uyEC8lOvK+f7a01gG0J+0bcKn7hVzm9/Eh6l
ujW+4ywKZFjeWqjoXYGHy+r/g8iXx2mGb1aRRusF5NzOBjeGAykuqciTTCerINxp
XVoPr6u3bCwnRzigjh9qRQn0hji+bR8YPpY+DYDZKLzpMQ8pi+li2JaXAoGBAPBe
0C7hU7dBtmxkOWlSncVOCd4xS6xQSRAbGXbxhejNyEOay9y1wv49wK7o2sD0NFPH
ibydx8rglB9lzksQ4/F/5fW2VP1BLjKwXEOnpya1jiz9orAXjRS7Uy0ePPDwp5jm
Wy4xX4WmRXWi+LoIqIIXJ0akRgveJRAJc56NCV2fAoGAKVr1u7utqv16VtTWumKa
4ohxp0jg4fskuA2toAyZK57I0D6hmwjzsygt14TsjswyqFaVQPdfudi1v+Fik+89
d+vQICKdcpbj6JkMrnBvoqiVK4uw9cLKp6+Lkse5ZLJHu4oCZuRZ6DZM+O/g6zoP
GrToGBDRZwkd0mcBySJA/1MCgYEApkDd+17seVchJu1XbEqxRzPHzYAJGCDbuCEW
RtecyD304xWhJYIuYY0yxYfXLhh6TOw5j1UOSHt22BShT/hZwMK2unGnbRd1Lagf
2MeP7E0tDl9L9EIF2a4LRKyid//r2+yQam3J5PXxGwFiycGNU5VSHCEpNbIrrmDr
MGHadX8CgYEAi8kqHDAtZVEk7OpvV6zp16MmEWJiU+cyrW7BPHCDdt1231AVa/x+
fQGwo8T7s1xeQ/ojxJ+O4gCZD13WOe83kdbtIPSBt6Q2SUJJFnndxrZO30yMmRoQ
L7jnSMNrzZ7rpv47QaIBTxe4E44hMcjgzaTnW/rvcyNKGIkKIKqm7j0=
-----END RSA PRIVATE KEY-----</code></pre>
<p>打开网站的配置文件，记录下大约在11行处</p>
<pre><code class="language-html">ssl_certificate
ssl_certificate_key</code></pre>
<p>记录后面的证书文件路径<br />
<a href="http://em.chenziwen.cn/help/content/uploadfile/202312/cafa1702628067.png"><img src="http://em.chenziwen.cn/help/content/uploadfile/202312/thum-cafa1702628067.png" alt="" /></a></p>
<p>进入服务器终端，执行下面命令(本例中web环境为nginx)如果你的为其他环境请参考https://blog.freessl.cn/acme-quick-start/。</p>
<ul>
<li>1，将example.com替换成你的域名# </li>
<li>2，将fullchain-file后面的路径替换成你刚刚查到的ssl_certificate路径</li>
<li>3，将key-file- 后面的路径替换成你刚刚查到的ssl_certificate_key路径</li>
</ul>
<pre><code class="language-html">acme.sh --install-cert -d chenziwen.cn \
--key-file       /www/server/panel/vhost/cert/chenziwen.cn/privkey.pem  \
--fullchain-file /www/server/panel/vhost/cert/chenziwen.cn/fullchain.pem \
--reloadcmd     "/etc/init.d/nginx reload"</code></pre>
<p>使用浏览器打开你的网站就可以看到效果了，享受吧！</p>]]></description>
    <pubDate>Fri, 15 Dec 2023 16:05:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=53</guid>
</item>
<item>
    <title>PHP截取字符串函数</title>
    <link>http://em.chenziwen.cn/help/?post=52</link>
    <description><![CDATA[<p>在PHP中，有多种方法可以截取字符串。以下是其中最常见的三种方法：</p>
<p>一：substr(string,start,length)英文 / mb_substr()中文</p>
<ul>
<li>
<p>string    必需。规定要返回其中一部分的字符串。</p>
</li>
<li>
<p>start<br />
必需。规定在字符串的何处开始。<br />
正数 - 在字符串的指定位置开始<br />
负数 - 在从字符串结尾开始的指定位置开始<br />
0 - 在字符串中的第一个字符处开始</p>
</li>
<li>
<p>length<br />
可选。规定被返回字符串的长度。默认是直到字符串的结尾。<br />
正数 - 从 start 参数所在的位置返回的长度<br />
负数 - 从字符串末端返回的长度</p>
</li>
</ul>
<pre><code class="language-php">&lt;?php
echo substr("Hello world",10)."&lt;br&gt;";
echo substr("Hello world",1)."&lt;br&gt;";
echo substr("Hello world",3)."&lt;br&gt;";
echo substr("Hello world",7)."&lt;br&gt;";

echo substr("Hello world",-1)."&lt;br&gt;";
echo substr("Hello world",-10)."&lt;br&gt;";
echo substr("Hello world",-8)."&lt;br&gt;";
echo substr("Hello world",-4)."&lt;br&gt;";
?&gt;
//运行结果：
d
ello world
lo world
orld
d
ello world
lo world
orld
</code></pre>
<p>二：mb_strimwidth()</p>
<pre><code class="language-php">&lt;?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// 输出 Hello W...
?&gt;</code></pre>]]></description>
    <pubDate>Wed, 13 Dec 2023 13:20:00 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>http://em.chenziwen.cn/help/?post=52</guid>
</item></channel>
</rss>