<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>杨先生工作记</title><link>https://www.youngpawel.cn/</link><description></description><item><title>利用CSS改变图片颜色</title><link>https://www.youngpawel.cn/CSS/10/</link><description>&lt;p&gt;&lt;img data-v-0808752c=&quot;&quot; data-v-409ef5ee=&quot;&quot; src=&quot;https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/9/19/165f14cba3c6a306~tplv-t2oaga2asx-zoom-crop-mark:1304:1304:1304:734.awebp&quot; data-src=&quot;https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/9/19/165f14cba3c6a306~tplv-t2oaga2asx-zoom-crop-mark:1304:1304:1304:734.awebp&quot; alt=&quot;利用CSS改变图片颜色的100种方法！&quot; class=&quot;lazy article-hero&quot;/&gt; &amp;nbsp;&lt;/p&gt;&lt;h3 data-id=&quot;heading-0&quot;&gt;前言&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;“说到对图片进行处理，我们经常会想到PhotoShop这类的图像处理工具。作为前端开发者，我们经常会需要处理一些特效，例如根据不同的状态，让图标显示不同的颜色。或者是hover的时候，对图片的对比度，阴影进行处理。”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/60839e1547a742b18893a7a68d8fdfdb~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;你以为这些是经过PS软件处理出来的？不不不，纯粹的是用css写出来的，很神奇把。&lt;/p&gt;&lt;h3 data-id=&quot;heading-1&quot;&gt;强大的 CSS:filter&lt;/h3&gt;&lt;p&gt;CSS滤镜（filter）属提供的图形特效，像模糊，锐化或元素变色。过滤器通常被用于调整图片，背景和边界的渲染。 &lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FCSS%2Ffilter&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter&quot;&gt;MDN&lt;/a&gt;&lt;/p&gt;&lt;p&gt;CSS标准里包含了一些已实现预定义效果的函数。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;filter:&amp;nbsp;none&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;blur()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;brightness()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;contrast()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;drop-shadow()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;grayscale()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;hue-rotate()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;invert()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;opacity()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;saturate()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;sepia()&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;url();


&amp;lt;!--html--&amp;gt;
&amp;lt;img&amp;nbsp;src=&amp;quot;https://note.youdao.com/yws/res/237/WEBRESOURCE7e77df2551fe1a1db1b9d91f4d518917&amp;quot;&amp;nbsp;alt=&amp;quot;原图&amp;quot;&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9dfb59a157e24a9a9ba72e6fb8f947f0~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-2&quot;&gt;filter: none&lt;/h4&gt;&lt;p&gt;没有任何效果，默认filter就为none&lt;/p&gt;&lt;h4 data-id=&quot;heading-3&quot;&gt;filter:blur( ) 高斯模糊&lt;/h4&gt;&lt;p&gt;给图像一个高斯模糊效果，length值越大，图像越模糊&lt;/p&gt;&lt;p&gt;我们来尝试一下&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:blur(2px);;
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0e852f4140914257ae66d05658bf5ec5~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-4&quot;&gt;brightness(%) 线性乘法&lt;/h4&gt;&lt;p&gt;可以让图片看起来更亮或者更暗&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:brightness(70%);
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6829b7b0a1d94ade8932bea9d68d4986~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-5&quot;&gt;contrast(%) 对比度&lt;/h4&gt;&lt;p&gt;调整图像的对比度。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:contrast(50%);
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ce575105f71c49949ed5745a58dbc3a9~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-6&quot;&gt;drop-shadow(h-shadow v-shadow blur spread color)&lt;/h4&gt;&lt;p&gt;给图像设置一个阴影效果。阴影是合成在图像下面，可以有模糊度的，可以以特定颜色画出的遮罩图的偏移版本。 
函数接受(在CSS3背景中定义)类型的值，除了&amp;quot;inset&amp;quot;关键字是不允许的。该函数与已有的box-shadow 
box-shadow属性很相似；不同之处在于，通过滤镜，一些浏览器为了更好的性能会提供硬件加速&lt;/p&gt;&lt;p&gt;利用这个方案，我们其实改变类似于一些图标的颜色，比如黑色的图标变成蓝色的图标。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fwww.zhangxinxu.com%2Fwordpress%2F2016%2F06%2Fpng-icon-change-color-by-css%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://www.zhangxinxu.com/wordpress/2016/06/png-icon-change-color-by-css/&quot;&gt;PNG格式小图标的CSS任意颜色赋色技术&lt;/a&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:&amp;nbsp;drop-shadow(705px&amp;nbsp;0&amp;nbsp;0&amp;nbsp;#ccc);
}&lt;/pre&gt;&lt;p&gt;在这里，我们将图片投影形成一个同等大小的灰色区域。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/81997de4373b4a00b5cd04616fac3b02~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-7&quot;&gt;hue-rotate(deg) 色相旋转&lt;/h4&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:hue-rotate(70deg);
}&lt;/pre&gt;&lt;p&gt;看，我的小姐姐变成了阿凡达！&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c92560230d044699ae7dbb09d3834b28~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-8&quot;&gt;invert(%) 反转&lt;/h4&gt;&lt;p&gt;这个函数的作用是反转输入图像，有点像曝光的效果&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:invert(100%)
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9edfc52f9b92457f9b8a29a3013b22a7~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;h4 data-id=&quot;heading-9&quot;&gt;grayscale(%) 将图像转换为灰度图像&lt;/h4&gt;&lt;p&gt;这个效果可以将图片做旧，有一种时代沧桑感。喜欢古风的人一定会喜欢上这个效果的&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:grayscale(80%);
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7ad603c4314b41e194b9df5fe8fac883~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;除了古风还有一种用法是有的时候需要将全站变成灰色，如大屠杀纪念日的时候。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/14e5ec9d448e4afbbf57a140fa8bf959~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;可以这样设置&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;*{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:&amp;nbsp;grayscale(100%);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-webkit-filter:&amp;nbsp;grayscale(100%);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-moz-filter:&amp;nbsp;grayscale(100%);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-ms-filter:&amp;nbsp;grayscale(100%);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-o-filter:&amp;nbsp;grayscale(100%);
}&lt;/pre&gt;&lt;h4 data-id=&quot;heading-10&quot;&gt;sepia(%) 将图像转换为深褐色&lt;/h4&gt;&lt;p&gt;下面给我的小姐姐一个暖暖的色调。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:sepia(50%)
}&lt;/pre&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5c1582535a1c4684afc6342ae4612d41~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;大家是不是发现我并没有把url()方法写到这上面来&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;没错，因为我想把这个内容放到最后来说，filter:url()就是css滤镜改变图片的终极方法。CSS:filter可以导入一个svg滤镜，作为他自己的滤镜。&lt;/p&gt;&lt;h3 data-id=&quot;heading-11&quot;&gt;终极变色解决方案！ filter:url();&lt;/h3&gt;&lt;p&gt;为什么说filter:url()是图片变色的终极解决方案呢，请容我慢慢道来。&lt;/p&gt;&lt;p&gt;我们先科普一下PS的工作原理，我们都知道网页是有三原色的R(红) G(绿) 
B(蓝)，常见的RGBA还包括一个opicity值，而opcity值是根据alpha通道计算出来的。也就是说，我们见到的网页的每一个像素点都是由红蓝绿再加alpha四个通道组成，每一个通道我们称之为色板，PS中的8位板的意思就是2的八次方256，意思就是每一个通道的取值范围都是(0-255) &lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fwww.oxxostudio.tw%2Farticles%2F201406%2Fsvg-11-filter-feColorMatrix.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://www.oxxostudio.tw/articles/201406/svg-11-filter-feColorMatrix.html&quot;&gt;SVG 研究之路 (11) - filter:feColorMatrix&lt;/a&gt;&lt;/p&gt;&lt;p&gt;如果我们可以改变每个通道的值是不是就能完美的得到我们想要的任意颜色了呢，原理上，我们可以像ps那样利用svg滤镜得到任何我们想要的图像，不仅仅是变色。我们甚至可以凭空生成一幅图像。&lt;/p&gt;&lt;h4 data-id=&quot;heading-12&quot;&gt;svg feColorMatrix大法好&lt;/h4&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;svg&amp;nbsp;height=&amp;quot;0&amp;quot;&amp;nbsp;xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;defs&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;filter&amp;nbsp;id=&amp;quot;change&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;feColorMatrix&amp;nbsp;type=&amp;quot;matrix&amp;quot;&amp;nbsp;values=&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0.55
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0.23&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;1&amp;quot;&amp;nbsp;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/filter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/defs&amp;gt;
&amp;lt;/svg&amp;gt;
&amp;lt;img&amp;nbsp;src=&amp;quot;https://note.youdao.com/yws/res/237/WEBRESOURCE7e77df2551fe1a1db1b9d91f4d518917&amp;quot;&amp;nbsp;alt=&amp;quot;&amp;quot;&amp;gt;



img&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filter:url(#change);
}&lt;/pre&gt;&lt;p&gt;通过单通道我们可以将图片变成单一的颜色&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c9e0361e8a6a4ac5a87b6797cc1532e2~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;svg&amp;nbsp;height=&amp;quot;0&amp;quot;&amp;nbsp;xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;defs&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;filter&amp;nbsp;id=&amp;quot;change&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;feColorMatrix&amp;nbsp;values=&amp;quot;3&amp;nbsp;-1&amp;nbsp;-1&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1&amp;nbsp;3&amp;nbsp;-1&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1&amp;nbsp;-1&amp;nbsp;3&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;1&amp;nbsp;0&amp;quot;&amp;nbsp;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/filter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/defs&amp;gt;
&amp;lt;/svg&amp;gt;&lt;/pre&gt;&lt;p&gt;通过双通道我们可以的到一些非常炫酷的PS效果&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/26c47ed3e4e1432585c594786d173d9e~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;当然，在这里，只是举个例子，通过配置矩阵中的值，我们可以配置每一个像素点的值按照我们定义的规则显示&lt;/p&gt;&lt;p&gt;我们在这里详细讲一下feColorMatrix 矩阵的计算方式&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84a71209b6624688ad72bd9843077834~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;p&gt;其中Rin Gi&lt;/p&gt;&lt;p&gt;n Bin a(alpha) 为原始图片中每个像素点的rgba值&lt;/p&gt;&lt;p&gt;通过矩阵计算，得到的Rout Gout Bout Aout就是最终显示出来的rgba值。&lt;/p&gt;&lt;h4 data-id=&quot;heading-13&quot;&gt;将图片转为单色 拿棕色rgba(140,59,0,1)作为例子&lt;/h4&gt;&lt;p&gt;根据上面的公式，我们可以简化一些计算，同一行中，只设置一个通道的值，其他通道为0&lt;/p&gt;&lt;p&gt;不难得出矩阵&lt;/p&gt;&lt;pre&gt;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;目标值R
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;目标值G
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;目标值B
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;1复制代码&lt;/pre&gt;&lt;p&gt;根据规则，只需要计算，&lt;strong&gt;255/想要显示的颜色对应通道 = 目标值&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们想要的棕色rgba(140,59,0,1) 换算成色板 rgba 为 140 59 0 255&lt;/p&gt;&lt;p&gt;可以算出目标值&lt;/p&gt;&lt;pre&gt;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0.55
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0.23
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;
0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;1&lt;/pre&gt;&lt;h4 data-id=&quot;heading-14&quot;&gt;多通道设置出炫酷的效果来&lt;/h4&gt;&lt;p&gt;就如同之前我们看到的双通道形成的炫酷图片一般&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;我們今天要把圖片的飽和度提高，該怎麼做呢？首先當然是想想飽和度的成因，就是紅的越紅，藍的越藍，綠的越綠，由這個成因出發，我們的矩陣就可以寫成下面的樣子，看到矩陣當中出現了
 3 和 -1，一定會很那悶這是怎麼來的，箇中原理其實很容易理解，讓我們假設某一個像素的 RGB 分別是 
(200/255),(100/255),(50/255)，呈現的應該是有點暗沉的橘色，經過矩陣的換算，R 變成了 
200/255x3-100/255-50/255= 1.76, G 變成 200/255x(-1)+100/255*3-50/255=0.2，B
 變成 200x(-1)+100x(-1)+50x3=-0.59，因此 RGB 轉換後就是：200x1.76,100x0.2,50x-0.5。&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fwww.oxxostudio.tw%2Farticles%2F201406%2Fsvg-11-filter-feColorMatrix.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://www.oxxostudio.tw/articles/201406/svg-11-filter-feColorMatrix.html&quot;&gt;SVG 研究之路 (11) - filter:feColorMatrix&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;&amp;lt;svg&amp;nbsp;height=&amp;quot;0&amp;quot;&amp;nbsp;xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;defs&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;filter&amp;nbsp;id=&amp;quot;change&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;feColorMatrix&amp;nbsp;values=&amp;quot;3&amp;nbsp;-1&amp;nbsp;-1&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1&amp;nbsp;3&amp;nbsp;-1&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-1&amp;nbsp;-1&amp;nbsp;3&amp;nbsp;0&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;0&amp;nbsp;0&amp;nbsp;1&amp;nbsp;0&amp;quot;&amp;nbsp;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/filter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/defs&amp;gt;
&amp;lt;/svg&amp;gt;&lt;/pre&gt;&lt;h4 data-id=&quot;heading-15&quot;&gt;其他方案&lt;/h4&gt;&lt;p&gt;除了feColorMatrix svg滤镜还有很多的方法可以定义滤镜，他们同样可以作用到图片上。由于篇幅限制，这里就不详细展开了&lt;/p&gt;&lt;h3 data-id=&quot;heading-16&quot;&gt;总结&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;css3提供了filter这个属性，使得通过前端技术实现更多炫酷的特效成为了可能&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;依赖于svg的滤镜，我们可以实现复杂的滤镜效果&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-id=&quot;heading-17&quot;&gt;注意&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;css：filter与ie上的filter并不是相同的概念&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;css:filter在不同的浏览器上兼容性不一样，您在使用的时候需要注意浏览器的兼容性&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;img src=&quot;https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/eea9057f1c8f436fb60e08116efaaba4~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp&quot; alt=&quot;&quot; class=&quot;medium-zoom-image&quot;/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-id=&quot;heading-18&quot;&gt;参考文献&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fwww.oxxostudio.tw%2Farticles%2F201406%2Fsvg-11-filter-feColorMatrix.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://www.oxxostudio.tw/articles/201406/svg-11-filter-feColorMatrix.html&quot;&gt;SVG 研究之路 (11) - filter:feColorMatrix&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FCSS%2Ffilter&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/filter&quot;&gt;css:filter MDN&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fcss-tricks.com%2Fcolor-filters-can-turn-your-gray-skies-blue%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://css-tricks.com/color-filters-can-turn-your-gray-skies-blue/&quot;&gt;Color Filters Can Turn Your Gray Skies Blue&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://link.juejin.cn?target=https%3A%2F%2Fwww.zhangxinxu.com%2Fwordpress%2F2016%2F06%2Fpng-icon-change-color-by-css%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot; title=&quot;https://www.zhangxinxu.com/wordpress/2016/06/png-icon-change-color-by-css/&quot;&gt;PNG格式小图标的CSS任意颜色赋色技术&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 25 May 2022 00:27:25 +0800</pubDate></item><item><title>PHPExcel导入导出及大量数据导入缓存方式的修改</title><link>https://www.youngpawel.cn/uncategorized/9/</link><description>&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;最近做一个WEB项目，需要用到Excel的导入导出。选用了经典的PHPExcel来实现。实现方法很简单，遇到一个问题，数据量较大时会出现内存溢出的问题。Google了一下，修改了缓存的方式，解决问题。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;require_once&amp;nbsp;&amp;#39;PHPExcel.php&amp;#39;;
//设定缓存模式为经gzip压缩后存入cache（还有多种方式请百度）
$cacheMethod&amp;nbsp;=&amp;nbsp;PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
$cacheSettings&amp;nbsp;=&amp;nbsp;array();
PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
$objPHPExcel&amp;nbsp;=&amp;nbsp;new&amp;nbsp;PHPExcel();
//读入上传文件
$objPHPExcel&amp;nbsp;=&amp;nbsp;PHPExcel_IOFactory::load($_FILES[&amp;quot;excel&amp;quot;][&amp;quot;tmp_name&amp;quot;]);
//内容转换为数组
$indata&amp;nbsp;=&amp;nbsp;$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;toArray();&lt;/pre&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 26 Mar 2021 10:57:51 +0800</pubDate></item><item><title>PHP+RabbitMQ实现消息队列(代码全篇)</title><link>https://www.youngpawel.cn/uncategorized/8/</link><description>&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; color: rgb(33, 37, 41); white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; text-indent: 2em; text-align: left;&quot;&gt;前言&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;先安装PHP对应的RabbitMQ,这里用的是&amp;nbsp;php_amqp&amp;nbsp;不同的扩展实现方式会有细微的差异.
php扩展地址:&amp;nbsp;http://pecl.php.net/package/amqp
具体以官网为准&amp;nbsp;&amp;nbsp;http://www.rabbitmq.com/getstarted.html&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; text-indent: 2em; text-align: left;&quot;&gt;介绍&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;config.php&amp;nbsp;配置信息BaseMQ.php&amp;nbsp;MQ基类ProductMQ.php&amp;nbsp;生产者类ConsumerMQ.php&amp;nbsp;消费者类Consumer2MQ.php&amp;nbsp;消费者2(可有多个)&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;config.php&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//配置
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;host&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;host&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;127.0.0.1&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;port&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;5672&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;login&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;guest&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;password&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;guest&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;vhost&amp;#39;=&amp;gt;&amp;#39;/&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//交换机
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;exchange&amp;#39;=&amp;gt;&amp;#39;word&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//路由
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;routes&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;[],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];&lt;/pre&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; color: rgb(33, 37, 41); white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;BaseMQ.php&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Created&amp;nbsp;by&amp;nbsp;PhpStorm.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;User:&amp;nbsp;pc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Date:&amp;nbsp;2018/12/13
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Time:&amp;nbsp;14:11
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namespace&amp;nbsp;MyObjSummary\rabbitMQ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;Member
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQPChannel
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQPConnection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQPEnvelope
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQPExchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AMQPQueue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Class&amp;nbsp;BaseMQ
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@package&amp;nbsp;MyObjSummary\rabbitMQ
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;BaseMQ
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;MQ&amp;nbsp;Channel
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var&amp;nbsp;\AMQPChannel
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$AMQPChannel&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;MQ&amp;nbsp;Link
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var&amp;nbsp;\AMQPConnection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$AMQPConnection&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;MQ&amp;nbsp;Envelope
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var&amp;nbsp;\AMQPEnvelope
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$AMQPEnvelope&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;MQ&amp;nbsp;Exchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var&amp;nbsp;\AMQPExchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$AMQPExchange&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;MQ&amp;nbsp;Queue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var&amp;nbsp;\AMQPQueue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$AMQPQueue&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;conf
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$conf&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;exchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@var
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$exchange&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;link
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;BaseMQ&amp;nbsp;constructor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;__construct()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$conf&amp;nbsp;=&amp;nbsp;&amp;nbsp;require&amp;nbsp;&amp;#39;config.php&amp;#39;&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$conf)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw&amp;nbsp;new&amp;nbsp;\AMQPConnectionException(&amp;#39;config&amp;nbsp;error!&amp;#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;conf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;$conf[&amp;#39;host&amp;#39;]&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;exchange&amp;nbsp;=&amp;nbsp;$conf[&amp;#39;exchange&amp;#39;]&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPConnection&amp;nbsp;=&amp;nbsp;new&amp;nbsp;\AMQPConnection($this-&amp;gt;conf);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(!$this-&amp;gt;AMQPConnection-&amp;gt;connect())&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw&amp;nbsp;new&amp;nbsp;\AMQPConnectionException(&amp;quot;Cannot&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;the&amp;nbsp;broker!\n&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;close&amp;nbsp;link
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;close()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPConnection-&amp;gt;disconnect();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;Channel
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\AMQPChannel
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;channel()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$this-&amp;gt;AMQPChannel)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPChannel&amp;nbsp;=&amp;nbsp;&amp;nbsp;new&amp;nbsp;\AMQPChannel($this-&amp;gt;AMQPConnection);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$this-&amp;gt;AMQPChannel;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;Exchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\AMQPExchange
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPExchangeException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;exchange()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$this-&amp;gt;AMQPExchange)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPExchange&amp;nbsp;=&amp;nbsp;new&amp;nbsp;\AMQPExchange($this-&amp;gt;channel());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPExchange-&amp;gt;setName($this-&amp;gt;exchange);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$this-&amp;gt;AMQPExchange&amp;nbsp;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;queue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\AMQPQueue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPQueueException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;queue()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$this-&amp;gt;AMQPQueue)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPQueue&amp;nbsp;=&amp;nbsp;new&amp;nbsp;\AMQPQueue($this-&amp;gt;channel());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$this-&amp;gt;AMQPQueue&amp;nbsp;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;Envelope
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;\AMQPEnvelope
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;envelope()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$this-&amp;gt;AMQPEnvelope)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;AMQPEnvelope&amp;nbsp;=&amp;nbsp;new&amp;nbsp;\AMQPEnvelope();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$this-&amp;gt;AMQPEnvelope;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; color: rgb(33, 37, 41); white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;ProductMQ.php&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//生产者&amp;nbsp;P
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namespace&amp;nbsp;MyObjSummary\rabbitMQ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;require&amp;nbsp;&amp;#39;BaseMQ.php&amp;#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;ProductMQ&amp;nbsp;extends&amp;nbsp;BaseMQ
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;$routes&amp;nbsp;=&amp;nbsp;[&amp;#39;hello&amp;#39;,&amp;#39;word&amp;#39;];&amp;nbsp;//路由key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;ProductMQ&amp;nbsp;constructor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;__construct()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parent::__construct();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;只控制发送成功&amp;nbsp;不接受消费者是否收到
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPChannelException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPExchangeException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;run()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//频道
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$channel&amp;nbsp;=&amp;nbsp;$this-&amp;gt;channel();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//创建交换机对象
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ex&amp;nbsp;=&amp;nbsp;$this-&amp;gt;exchange();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//消息内容
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$message&amp;nbsp;=&amp;nbsp;&amp;#39;product&amp;nbsp;message&amp;nbsp;&amp;#39;.rand(1,99999);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//开始事务
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$channel-&amp;gt;startTransaction();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$sendEd&amp;nbsp;=&amp;nbsp;true&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;($this-&amp;gt;routes&amp;nbsp;as&amp;nbsp;$route)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$sendEd&amp;nbsp;=&amp;nbsp;$ex-&amp;gt;publish($message,&amp;nbsp;$route)&amp;nbsp;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;Send&amp;nbsp;Message:&amp;quot;.$sendEd.&amp;quot;\n&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!$sendEd)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$channel-&amp;gt;rollbackTransaction();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$channel-&amp;gt;commitTransaction();&amp;nbsp;//提交事务
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;close();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die&amp;nbsp;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(new&amp;nbsp;ProductMQ())-&amp;gt;run();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch&amp;nbsp;(\Exception&amp;nbsp;$exception){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var_dump($exception-&amp;gt;getMessage())&amp;nbsp;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;ul style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; color: rgb(33, 37, 41); white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;ConsumerMQ.php&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style=&quot;box-sizing: border-box; margin-bottom: 1.25rem; overflow: auto; color: rgb(51, 51, 51); padding: 1rem; background-color: rgb(233, 236, 239); max-height: 35rem; line-height: 1.5; margin-top: 0px !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?php
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//消费者&amp;nbsp;C
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namespace&amp;nbsp;MyObjSummary\rabbitMQ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;require&amp;nbsp;&amp;#39;BaseMQ.php&amp;#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;ConsumerMQ&amp;nbsp;extends&amp;nbsp;BaseMQ
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;&amp;nbsp;$q_name&amp;nbsp;=&amp;nbsp;&amp;#39;hello&amp;#39;;&amp;nbsp;//队列名
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;&amp;nbsp;$route&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;#39;hello&amp;#39;;&amp;nbsp;//路由key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;ConsumerMQ&amp;nbsp;constructor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;__construct()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parent::__construct();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&amp;nbsp;接受消息&amp;nbsp;如果终止&amp;nbsp;重连时会有消息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPChannelException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPConnectionException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPExchangeException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@throws&amp;nbsp;\AMQPQueueException
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;run()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//创建交换机
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ex&amp;nbsp;=&amp;nbsp;$this-&amp;gt;exchange();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ex-&amp;gt;setType(AMQP_EX_TYPE_DIRECT);&amp;nbsp;//direct类型
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$ex-&amp;gt;setFlags(AMQP_DURABLE);&amp;nbsp;//持久化
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//echo&amp;nbsp;&amp;quot;Exchange&amp;nbsp;Status:&amp;quot;.$ex-&amp;gt;declare().&amp;quot;\n&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//创建队列
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$q&amp;nbsp;=&amp;nbsp;$this-&amp;gt;queue();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//var_dump($q-&amp;gt;declare());exit();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$q-&amp;gt;setName($this-&amp;gt;q_name);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$q-&amp;gt;setFlags(AMQP_DURABLE);&amp;nbsp;//持久化
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//echo&amp;nbsp;&amp;quot;Message&amp;nbsp;Total:&amp;quot;.$q-&amp;gt;declareQueue().&amp;quot;\n&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//绑定交换机与队列，并指定路由键
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;#39;Queue&amp;nbsp;Bind:&amp;nbsp;&amp;#39;.$q-&amp;gt;bind($this-&amp;gt;exchange,&amp;nbsp;$this-&amp;gt;route).&amp;quot;\n&amp;quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//阻塞模式接收消息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;Message:\n&amp;quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(True){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$q-&amp;gt;consume(function&amp;nbsp;($envelope,$queue){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$msg&amp;nbsp;=&amp;nbsp;$envelope-&amp;gt;getBody();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$msg.&amp;quot;\n&amp;quot;;&amp;nbsp;//处理消息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$queue-&amp;gt;ack($envelope-&amp;gt;getDeliveryTag());&amp;nbsp;//手动发送ACK应答
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//$q-&amp;gt;consume(&amp;#39;processMessage&amp;#39;,&amp;nbsp;AMQP_AUTOACK);&amp;nbsp;//自动ACK应答
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(new&amp;nbsp;ConsumerMQ)-&amp;gt;run();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch&amp;nbsp;(\Exception&amp;nbsp;$exception){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var_dump($exception-&amp;gt;getMessage())&amp;nbsp;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;</description><pubDate>Fri, 26 Mar 2021 10:56:24 +0800</pubDate></item><item><title>MS-SQLSERVER数据库SUSPECT状态如何解决</title><link>https://www.youngpawel.cn/uncategorized/7/</link><description>&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;如何重置数据库Suppect(置疑)状态&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;一、出现这种情况的原因&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;如果在日常运行当中，数据库的文件或日志增长方式设为以下两种模式：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;1、文件不自动增长&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;此种状态下，如果数据库中的数据或日志增长到设定的文件大小时，继续添加数据时就没有足够的空间时，MS SQL SERVER将把数据库标记为Suspect（置疑）&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;2、文件自动增长但限制最大文件大小&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;此种状态下，如果数据库中的数据或日志增长到设定的最大文件大小时，继续添加数据时就没有足够的空间时，MS SQL SERVER将把数据库标记为Suspect（置疑）&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;3、文件自动增长也没限制文件大小，但存放文件的磁盘剩余空间不够了&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;4、意外掉电，造成磁盘文件损坏&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;二、解决方法：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;方法一：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;释放含有相关数据库日志文件的任意磁盘驱动器上的磁盘空间。释放的磁盘空间使恢复系统可以自动地增长数据或事务日志文件。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_resetstatus 重置置疑状态。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;通过执行 DBCC DBRECOVER（数据库）运行恢复操作。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;方法二：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;释放另一个磁盘驱动器上的磁盘空间。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;把可用磁盘空间不足的事务日志文件移动到第一步所指的磁盘驱动器上。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_detach_db 分离数据库。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_attach_db 附加数据库，指向被移动的文件。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;方法三：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;向置疑数据库添加一个日志文件，然后执行 sp_add_log_file_recover_suspect_db 以便在数据库上运行恢复操作。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;解决错误信息 1105，然后使数据库联机&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;对于任意一个含有错误信息 1105 提到的文件组中文件的磁盘，释放其磁盘空间。释放磁盘空间使得文件组中的文件可以增长。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_resetstatus 重置置疑状态。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 DBCC DBRECOVER（数据库）运行恢复操作。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;方法四：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;释放另一个磁盘驱动器上的磁盘空间。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;将可用磁盘空间不足的文件组中的数据文件移动到第一步所指的磁盘驱动器上。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_detach_db 分离数据库。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_attach_db 附加数据库，指向被移动的文件。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;方法五：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;向置疑数据库添加一个数据文件，然后执行 sp_add_data_file_recover_suspect_db 以便在数据库上运行恢复操作。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行 sp_resetstatus。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;用 ALTER DATABASE 向数据库添加一个数据文件或日志文件。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;停止并重新启动 SQL Server。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;用新的数据文件或日志文件所提供的额外空间，SQL Server 应该能完成数据库的恢复。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;释放磁盘空间并且重新运行恢复操作。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_resetstatus 关闭数据库的置疑标志，但是原封不动地保持数据库的其它选项。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;注意&amp;nbsp;&amp;nbsp;只有在您的主要支持提供者指导下或有疑难解答建议的做法时，才可以使用 sp_resetstatus。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;否则，可能会损坏数据库。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;由于该过程修改了系统表，系统管理员必须在创建这个过程前，启用系统表更新。要启用更新，使用下面的过程：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;USE master&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;GO&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_configure &amp;#39;allow updates&amp;#39;, 1&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;GO&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;RECONFIGURE WITH OVERRIDE&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;GO&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;过程创建后，立即禁用系统表更新：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_configure &amp;#39;allow updates&amp;#39;, 0&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;GO&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;RECONFIGURE WITH OVERRIDE&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;GO&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;只有系统管理员才能执行 sp_resetstatus。执行该过程后，立即关闭 SQL Server。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;语法为：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_resetstatus database_name&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;下面的例子将关闭 PRODUCTION 数据库的置疑标志。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_resetstatus PRODUCTION&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;下面是结果集：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;Database &amp;#39;PRODUCTION&amp;#39; status reset!&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;WARNING: You must reboot SQL Server prior to accessing this database!&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;注释&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_resetstatus 关闭数据库上的置疑标记。此过程更新 sysdatabases 中的命名数据库的模式和状态列。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在运行此过程之前，应参考 SQL Server 错误日志并解决所有问题。执行 sp_resetstatus 后停止并重新启动 SQL Server。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;由于某些原因，数据库可能成为置疑状态。可能的原因包括操作系统拒绝对数据库资源的访问，以及一个或多个数据库文件不可用性或已损坏。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;权限&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;只有 sysadmin 固定服务器角色成员才能执行 sp_resetstatus。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;示例&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;下例重置 PUBS 数据库的状态。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;EXEC sp_resetstatus &amp;#39;PUBS&amp;#39;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;数据文件空间不足：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_add_data_file_recover_suspect_db&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;当由于文件组上的&amp;quot;空间不足&amp;quot;(1105) 错误而导致一个数据库上的恢复不能完成时，请为文件组添加一个数据文件。添加日志文件后，该存储过程关闭置疑设置并完成数据库的故障恢复。该参数和 ALTER DATABASE ADD FILE 的参数相同。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;示例&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在下面的示例中，由于文件组 fg1 中空间不足（错误 1105），数据库 db1 被标记为置疑。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_add_data_file_recover_suspect_db db1, fg1, file2,&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;#39;c:/Program Files/Microsoft SQL Server/MSSQL/Data/db1_file2.mdf&amp;#39;, &amp;#39;1MB&amp;#39;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;日志空间不足：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_add_log_file_recover_suspect_db&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;由于数据库上&amp;quot;日志空间不足&amp;quot;(9002) 错误造成恢复不能完成时，请将日志文件添加到文件组中。添加日志文件后，该存储过程关闭置疑设置并完成数据库的故障恢复。参数与 ALTER DATABASE ADD LOG FILE 中的参数相同。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;权限&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;执行权限默认赋予 sysadmin 固定服务器角色的成员。这些权限是不可传递的。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;示例&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在此示例中，数据库 db1 在故障恢复期间由于日志空间不足（错误 9002）而标记为置疑。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;sp_add_log_file_recover_suspect_db db1, logfile2,&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;#39;c:/Program Files/Microsoft SQL Server/MSSQL/Data/db1_logfile2.ldf&amp;#39;,&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;#39;1MB&amp;#39;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;严重级别 22：SQL Server 严重错误表的完整性置疑&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;这些消息表明消息中所指定的表或索引已因软件或硬件问题而损坏。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;严重级别 22 错误很少发生；但是，如果遇到该错误，请运行 DBCC CHECKDB 确定数据库中是否有其它对象也受损坏。问题有可能只存在于超速缓存中，而不是存在于磁盘本身。如果是这样，重新启动 SQL Server 将修正该问题。要继续工作，必须重新连接到 SQL Server。否则，用 DBCC 修复该问题。有些情况下，有必要还原数据库。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;如果重新启动帮助不大，则问题存在于磁盘上。有时，摧毁在错误信息中指定的对象可以解决该问题。例如，如果消息说 SQL Server 在非聚集索引中发现长度为 0 的行，删除该索引然后重建。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;严重级别 23：SQL Server 严重错误：数据库完整性置疑&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;这些消息表明由于硬件或软件问题，整个数据库完整性存在问题。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;严重级别 23 错误很少发生；但是，如果遇到，请运行 DBCC CHECKDB 确定损坏的程度。问题有可能只存在于超速缓存中，而不是存在于磁盘本身。如果是这样，重新启动 SQL Server 将修正该问题。要继续工作，必须重新连接到 SQL Server。否则，用 DBCC 修复该问题。有些情况下，有必要重新启动数据库。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;DBCC CHECKDB 建议&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在 Microsoft? SQL Server? 2000 中，可以在用户使用数据库时运行 DBCC CHECKDB，因为 DBCC CHECKDB 在检查每个数据库表时在表上控制的锁的类型均更改。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在 SQL Server 7.0 和早期版本中，DBCC CHECKDB（依次在数据库的每个表上运行 DBCC CHECKTABLE 和 CHECKALLOC）常常在表上控制共享锁 (S)，因而阻塞了所有的数据修改语言 (DML) 语句。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在 SQL Server 2000 中，当检查表时 DBCC CHECKDB 在表上控制架构锁以防止元数据的更改，因而允许在正在检查的表上使用除任何数据定义语言 (DDL) 语句之外的 DML 语句。该变化对于决定何时运行 DBCC CHECKDB 提供了更大的灵活性，因为 DBCC CHECKDB 并不完全拒绝用户对系统的使用。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;DBCC CHECKDB 是大量占用 CPU 和磁盘的操作。每一个需要检查的数据页都必须首先从磁盘读入内存。另外，DBCC CHECKDB 使用 tempdb 排序。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;如果在 DBCC CHECKDB 运行时动态执行事务，那么事务日志会继续增长，因为 DBCC 命令在完成日志的读取之前阻塞日志截断。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;建议在服务器负荷较少的时候运行 DBCC CHECKDB。如果在负荷高峰期运行 DBCC CHECKDB，那么事务吞吐量性能和 DBCC CHECKDB 完成时间性能都会受到影响。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;要获得好的 DBCC 性能的一些建议&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在系统使用率较低时运行 CHECKDB。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;请确保未同时执行其它磁盘 I/O 操作，例如磁盘备份。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;将 tempdb 放到单独的磁盘系统或快速磁盘子系统中。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;允许 tempdb 在驱动器上有足够的扩展空间。使用带有 ESTIMATE ONLY 的 DBCC 估计 tempdb 将需要多少空间。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;避免运行占用大量 CPU 的查询或批处理作业。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;在 DBCC 命令运行时，减少活动事务。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;使用 NO_INFOMSGS 选项显著减少处理和 tempdb 的使用。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: rgb(51, 51, 51); white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; background-color: #FFFFFF;&quot;&gt;考虑使用带有 PHYSICAL_ONLY 选项的 DBCC CHECKDB 来检查页和记录首部的物理结构。当硬件导致的错误被置疑时，这个操作将执行快速检查。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Fri, 26 Mar 2021 10:50:06 +0800</pubDate></item><item><title>如何阻止网站被恶意反向代理访问</title><link>https://www.youngpawel.cn/uncategorized/6/</link><description>&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: Simsun; background-color: #F9F9F9;&quot;&gt;近有人用小站数据，利用反向代理技术，做了个小偷站。用户访问的是他的网址，但实质上内容数据确是我的，这是一起恶意反向代理事件。&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;什么是反向代理？&lt;/h4&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;先说说正向代理的概念：&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;正向代理，也就是传说中的代理，他的工作原理就像一个跳板。简单的说，我是一个用户，我访问不了某网站，但是我能访问一个代理服务器。这个代理服务 器呢，他能访问那个我不能访问的网站，于是我先连上代理服务器，告诉他我需要那个无法访问网站的内容，代理服务器去取回来，然后返回给我。从网站的角度， 只在代理服务器来取内容的时候有一次记录，有时候并不知道是用户的请求，也隐藏了用户的资料，这取决于代理告不告诉网站。&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;结论就是，正向代理是一个位于客户端和原始服务器(origin server)之间的服务器，为了从原始服务器取得内容，客户端向代理发送一个请求并指定目标(原始服务器)，然后代理向原始服务器转交请求并将获得的内 容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;那么反向代理的概念呢？&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;比如用户访问 https://www.nowamagic.net/librarys/veda 这个页面，但www.nowamagic.net实际上并不存在这个页面，他是偷偷从另外一台服务器上取回来，然后作为自己的内容吐给用户。&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;但用户并不知情，这很正常，用户一般都很笨。这里所提到的 www.nowamagic.net 这个域名对应的服务器就设置了反向代理功能。&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;结论就是反向代理正好相反，对于客户端而言它就像是原始服务器，并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求，接着反向代理将判断向何处(原始服务器)转交请求，并将获得的内容返回给客户端，就像这些内容 原本就是它自己的一样。&lt;/p&gt;&lt;h4 style=&quot;color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;恶意反向代理的危害&lt;/h4&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;网站被恶意反向代理有什么危害呢？这里列举一下：&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;首先肯定会占用服务器资源，网站打开速度受影响。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;其次，别人通过代理盗用你的网站数据，对用户与不是那么智能的搜索引擎而言，相当于建了一个与你一模一样的站点，那么很有可能你的站点会进搜索引擎沙箱，甚至被降权。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;如果被恶意代理的页面，还挂有你的联盟广告（比如Adsense），这就十分危险了，如果有人点击了上面的广告，很容易被Adsense封号。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;还有很多危害，读者可以自行脑补……&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 style=&quot;color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;js 级别的解决方案&lt;/h4&gt;&lt;div style=&quot;border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;&lt;div id=&quot;highlighter_378045&quot; style=&quot;border-width: 0px; padding: 0px; list-style: none; width: 613px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: none !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: rgb(108, 226, 108) !important; inset: 1px 1px auto auto !important; float: none !important; height: 11px !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: absolute !important; vertical-align: baseline !important; width: 11px !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.2cto.com/Article/201311/259078.html#&quot; style=&quot;color: white !important; text-decoration-line: none !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; text-align: center !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;692&quot; height=&quot;NaN&quot;&gt;&lt;tbody style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot; width=&quot;NaN&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; width=&quot;660&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;script type=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;if&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;(document.domain != &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;nowamagic.net&amp;#39;&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;amp;&amp;amp; document.domain != &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;www.nowamagic.net&amp;#39;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;){&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;window.location.href=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;&lt;a href=&quot;https://www.nowamagic.net/&quot; style=&quot;text-decoration-line: none; color: blue !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;https://www.nowamagic.net/&lt;/a&gt;&amp;#39;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;脚本很简单，如果地址栏中的网址不是 nowamagic.net 和 www.nowamagic.net 中的任何一个，那么就把地址栏转向 https://www.nowamagic.net/ 。这段代码同样可以避免被人使用反向代理技术“伪造”一个跟自己一模一样的网站。&lt;/p&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;题外话：如何防止网站被iframe嵌入。有些人用iframe做了个框架，把我们网站嵌入其中，访客来浏览的时候，好像是在浏览他自己的网站一样，那么如何解决呢？以下方法可破：&lt;/p&gt;&lt;div style=&quot;border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;&lt;div id=&quot;highlighter_426592&quot; style=&quot;border-width: 0px; padding: 0px; list-style: none; width: 613px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: none !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: rgb(108, 226, 108) !important; inset: 1px 1px auto auto !important; float: none !important; height: 11px !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: absolute !important; vertical-align: baseline !important; width: 11px !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.2cto.com/Article/201311/259078.html#&quot; style=&quot;color: white !important; text-decoration-line: none !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; text-align: center !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;613&quot; height=&quot;NaN&quot;&gt;&lt;tbody style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot; width=&quot;NaN&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; width=&quot;581&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;script type=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;!--&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;if&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;(top.location != self.location)top.location=self.location;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;// --&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 style=&quot;color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;php 级别的解决方案&lt;/h4&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;js 级别的解决方案虽然能够让恶意代理页面跳回来，但是对搜索引擎不怎么友好。下面是服务器端（&lt;a href=&quot;http://www.2cto.com/kf/web/php/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(31, 58, 135); text-decoration-line: none;&quot;&gt;PHP&lt;/a&gt;）的解决方案，代码比较简单，就不多说了。&lt;/p&gt;&lt;div style=&quot;border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;&lt;div id=&quot;highlighter_759022&quot; style=&quot;border-width: 0px; padding: 0px; list-style: none; width: 613px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: none !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: rgb(108, 226, 108) !important; inset: 1px 1px auto auto !important; float: none !important; height: 11px !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: absolute !important; vertical-align: baseline !important; width: 11px !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.2cto.com/Article/201311/259078.html#&quot; style=&quot;color: white !important; text-decoration-line: none !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; text-align: center !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;623&quot; height=&quot;NaN&quot;&gt;&lt;tbody style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot; width=&quot;NaN&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;7&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;8&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;9&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;10&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;11&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;12&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;13&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;14&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;15&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;16&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;17&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;18&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;19&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;20&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;21&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; width=&quot;583&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$proxy_rs&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;= &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$this&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;-&amp;gt; proxy_filter();&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;if&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;( &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$proxy_rs&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;!= &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;nowamagic.net&amp;#39;&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;|| &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$proxy_rs&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;!= &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;www.nowamagic.net&amp;#39;&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;) &lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(255, 20, 147) !important;&quot;&gt;echo&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;非法反向代理访问&amp;#39;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;//header(&amp;#39;Location: &lt;a href=&quot;https://www.nowamagic.net/&quot; style=&quot;text-decoration-line: none; color: rgb(0, 130, 0) !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;https://www.nowamagic.net/&lt;/a&gt;&amp;#39;);&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(255, 20, 147) !important;&quot;&gt;exit&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;public&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;function&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;proxy_filter()&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;/*&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;$svrUrl = &amp;#39;&lt;a href=&quot;https:&quot; style=&quot;text-decoration-line: none; color: rgb(0, 130, 0) !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;https://&lt;/a&gt;&amp;#39; . $_SERVER[&amp;#39;SERVER_NAME&amp;#39;].$_SERVER[&amp;quot;PHP_SELF&amp;quot;];&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;if (!empty($_SERVER[&amp;quot;QUERY_STRING&amp;quot;]))&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;{&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;$svrUrl .= &amp;quot;?&amp;quot;.$_SERVER[&amp;quot;QUERY_STRING&amp;quot;];&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;return $svrUrl;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 130, 0) !important;&quot;&gt;*/&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;return&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$_SERVER&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;[&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;SERVER_NAME&amp;#39;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;];&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 style=&quot;color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;htaccess 级别的解决方案&lt;/h4&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;.htaccess&lt;/p&gt;&lt;div style=&quot;border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;&lt;div id=&quot;highlighter_903435&quot; style=&quot;border-width: 0px; padding: 0px; list-style: none; width: 613px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: none !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: rgb(108, 226, 108) !important; inset: 1px 1px auto auto !important; float: none !important; height: 11px !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: absolute !important; vertical-align: baseline !important; width: 11px !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.2cto.com/Article/201311/259078.html#&quot; style=&quot;color: white !important; text-decoration-line: none !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; text-align: center !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;613&quot; height=&quot;NaN&quot;&gt;&lt;tbody style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot; width=&quot;NaN&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; width=&quot;581&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;RewriteEngine On&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;RewriteBase /&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;php_value auto_append_file proxy.php&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;proxy.php&lt;/p&gt;&lt;div style=&quot;border-width: 0px; padding: 0px; margin: 0px; list-style: none; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-indent: 2em; text-align: left;&quot;&gt;&lt;div id=&quot;highlighter_995068&quot; style=&quot;border-width: 0px; padding: 0px; list-style: none; width: 613px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: none !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: rgb(108, 226, 108) !important; inset: 1px 1px auto auto !important; float: none !important; height: 11px !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: absolute !important; vertical-align: baseline !important; width: 11px !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: white !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.2cto.com/Article/201311/259078.html#&quot; style=&quot;color: white !important; text-decoration-line: none !important; border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; text-align: center !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;630&quot; height=&quot;NaN&quot;&gt;&lt;tbody style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot; width=&quot;NaN&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;list-style: none; border-width: 0px 3px 0px 0px !important; padding: 0px 0.5em 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(108, 226, 108) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em;&quot;&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;list-style: none; border-width: 0px !important; border-style: initial !important; border-color: initial !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;&quot; width=&quot;598&quot; height=&quot;NaN&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px !important; margin: 0px !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;&amp;lt;?php&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$f&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;= &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(255, 20, 147) !important;&quot;&gt;getenv&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;(&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;HTTP_X_FORWARDED_FOR&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$server&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;= &lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(255, 20, 147) !important;&quot;&gt;getenv&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;(&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;HTTP_HOST&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;);&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-weight: bold !important; font-size: 1em !important; min-height: auto !important; color: rgb(0, 102, 153) !important;&quot;&gt;if&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;((&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$f&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;!=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;)&amp;amp;&amp;amp;(&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$server&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;!=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;nowamagic.net&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;)&amp;amp;&amp;amp;(&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(170, 119, 0) !important;&quot;&gt;$server&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;!=&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;quot;www.nowamagic.net&amp;quot;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;)){&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(255, 20, 147) !important;&quot;&gt;echo&lt;/code&gt; &lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: blue !important;&quot;&gt;&amp;#39;本服务器禁止恶意反向代理！&amp;#39;&lt;/code&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;list-style: none; border: 0px !important; padding: 0px 1em !important; margin: 0px !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important; text-indent: 2em; text-align: left;&quot;&gt;&lt;code style=&quot;border-radius: 0px !important; background: none !important; border: 0px !important; inset: auto !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: black !important;&quot;&gt;?&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border-width: 0px; padding: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: Simsun; white-space: normal; background-color: rgb(249, 249, 249); text-align: left;&quot;&gt;这个由于我网站的特殊性，没试验过，但是网上常用这种方法。&lt;/p&gt;</description><pubDate>Fri, 26 Mar 2021 10:47:44 +0800</pubDate></item><item><title>利用phpExcel实现Excel数据的导入导出</title><link>https://www.youngpawel.cn/uncategorized/5/</link><description>&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;很多文章都有提到关于使用phpExcel实现Excel数据的导入导出，大部分文章都差不多，或者就是转载的，都会出现一些问题，下面是本人研究phpExcel的使用例程总结出来的使用方法，接下来直接进入正题。&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;首先先说一下，本人的这段例程是使用在Thinkphp的开发框架上，要是使用在其他框架也是同样的方法，很多人可能不能正确的实现Excel的导入导出，问题基本上都是phpExcel的核心类引用路径出错，如果有问题大家务必要对路劲是否引用正确进行测试。&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;line-height: 32px; color: #FF0000;&quot;&gt;（一）导入Excel&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;第一，在前台html页面进行上传文件：如：&lt;/p&gt;&lt;div style=&quot;margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 32px; background: rgb(242, 246, 251); width: 800px; clear: both; border-top: 1px solid rgb(0, 153, 204); border-right: 1px solid rgb(0, 153, 204); border-left: 1px solid rgb(0, 153, 204); border-image: initial; border-bottom: none; overflow: hidden; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;span style=&quot;line-height: 30px; float: right;&quot;&gt;&lt;a data=&quot;9513&quot; id=&quot;copybut9513&quot; style=&quot;color: rgb(51, 51, 51); cursor: pointer;&quot;&gt;&lt;span style=&quot;text-decoration:underline;&quot;&gt;复制代码&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;代码如下:&lt;/div&gt;&lt;div id=&quot;code9513&quot; style=&quot;margin: 0px auto 3px; padding: 0px 3px 0px 5px; outline: none; line-height: 32px; background: rgb(221, 237, 251); border: 1px solid rgb(0, 153, 204); width: 798px; clear: both; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;br/&gt;&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;php文件&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h3&amp;gt;导入Excel表：&amp;lt;/h3&amp;gt;&amp;lt;input&amp;nbsp; type=&amp;quot;file&amp;quot; name=&amp;quot;file_stu&amp;quot; /&amp;gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;submit&amp;quot;&amp;nbsp; value=&amp;quot;导入&amp;quot; /&amp;gt;&lt;br/&gt;&amp;lt;/form&amp;gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&lt;br style=&quot;color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #222222; font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;第二，在对应的php文件进行文件的处理&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 32px; background: rgb(242, 246, 251); width: 800px; clear: both; border-top: 1px solid rgb(0, 153, 204); border-right: 1px solid rgb(0, 153, 204); border-left: 1px solid rgb(0, 153, 204); border-image: initial; border-bottom: none; overflow: hidden; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;span style=&quot;line-height: 30px; float: right;&quot;&gt;&lt;a data=&quot;27785&quot; id=&quot;copybut27785&quot; style=&quot;color: rgb(51, 51, 51); cursor: pointer;&quot;&gt;&lt;span style=&quot;text-decoration:underline;&quot;&gt;复制代码&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;代码如下:&lt;/div&gt;&lt;div id=&quot;code27785&quot; style=&quot;margin: 0px auto 3px; padding: 0px 3px 0px 5px; outline: none; line-height: 32px; background: rgb(221, 237, 251); border: 1px solid rgb(0, 153, 204); width: 798px; clear: both; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;br/&gt;&amp;nbsp;if (! empty ( $_FILES [&amp;#39;file_stu&amp;#39;] [&amp;#39;name&amp;#39;] ))&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tmp_file = $_FILES [&amp;#39;file_stu&amp;#39;] [&amp;#39;tmp_name&amp;#39;];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file_types = explode ( &amp;quot;.&amp;quot;, $_FILES [&amp;#39;file_stu&amp;#39;] [&amp;#39;name&amp;#39;] );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file_type = $file_types [count ( $file_types ) - 1];&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*判别是不是.xls文件，判别是不是excel文件*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (strtolower ( $file_type ) != &amp;quot;xls&amp;quot;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error ( &amp;#39;不是Excel文件，重新上传&amp;#39; );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*设置上传路径*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $savePath = SITE_PATH . &amp;#39;/public/upfile/Excel/&amp;#39;;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*以时间来命名上传的文件*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $str = date ( &amp;#39;Ymdhis&amp;#39; );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file_name = $str . &amp;quot;.&amp;quot; . $file_type;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*是否上传成功*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (! copy ( $tmp_file, $savePath . $file_name ))&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error ( &amp;#39;上传失败&amp;#39; );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 注意：这里调用执行了第三步类里面的read函数，把Excel转化为数组并返回给$res,再进行数据库写入&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br/&gt;&amp;nbsp; $res = Service ( &amp;#39;ExcelToArray&amp;#39; )-&amp;gt;read ( $savePath . $file_name );&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; /*&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 重要代码 解决Thinkphp M、D方法不能调用的问题&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br/&gt;&amp;nbsp;&amp;nbsp; //spl_autoload_register ( array (&amp;#39;Think&amp;#39;, &amp;#39;autoload&amp;#39; ) );&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; /*对生成的数组进行数据库的写入*/&lt;br/&gt;&amp;nbsp;&amp;nbsp; foreach ( $res as $k =&amp;gt; $v )&lt;br/&gt;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($k != 0)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data [&amp;#39;uid&amp;#39;] = $v [0];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data [&amp;#39;password&amp;#39;] = sha1 ( &amp;#39;111111&amp;#39; );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data [&amp;#39;email&amp;#39;] = $v [1];&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data [&amp;#39;uname&amp;#39;] = $v [3];&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data [&amp;#39;institute&amp;#39;] = $v [4];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = M ( &amp;#39;user&amp;#39; )-&amp;gt;add ( $data );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (! $result)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error ( &amp;#39;导入数据库失败&amp;#39; );&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;}&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&lt;br style=&quot;color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #222222; font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;第三：ExcelToArrary类,用来引用phpExcel并处理Excel数据的&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 32px; background: rgb(242, 246, 251); width: 800px; clear: both; border-top: 1px solid rgb(0, 153, 204); border-right: 1px solid rgb(0, 153, 204); border-left: 1px solid rgb(0, 153, 204); border-image: initial; border-bottom: none; overflow: hidden; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;span style=&quot;line-height: 30px; float: right;&quot;&gt;&lt;a data=&quot;5759&quot; id=&quot;copybut5759&quot; style=&quot;color: rgb(51, 51, 51); cursor: pointer;&quot;&gt;&lt;span style=&quot;text-decoration:underline;&quot;&gt;复制代码&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;代码如下:&lt;/div&gt;&lt;div id=&quot;code5759&quot; style=&quot;margin: 0px auto 3px; padding: 0px 3px 0px 5px; outline: none; line-height: 32px; background: rgb(221, 237, 251); border: 1px solid rgb(0, 153, 204); width: 798px; clear: both; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;br/&gt;class ExcelToArrary extends Service{&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;public function __construct() {&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*导入phpExcel核心类&amp;nbsp;&amp;nbsp;&amp;nbsp; 注意 ：你的路径跟我不一样就不能直接复制*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include_once(&amp;#39;./Excel/PHPExcel.php&amp;#39;);&lt;br/&gt;&amp;nbsp;}&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;/**&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;*以下基本都不要修改&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;*/&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;public function read($filename,$encode=&amp;#39;utf-8&amp;#39;){&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objReader = PHPExcel_IOFactory::createReader(&amp;#39;Excel5&amp;#39;);&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objReader-&amp;gt;setReadDataOnly(true);&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel = $objReader-&amp;gt;load($filename);&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objWorksheet = $objPHPExcel-&amp;gt;getActiveSheet();&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;　　　 $highestRow = $objWorksheet-&amp;gt;getHighestRow();&lt;br/&gt;　　　 $highestColumn = $objWorksheet-&amp;gt;getHighestColumn();&lt;br/&gt;　　&amp;nbsp;&amp;nbsp;&amp;nbsp; $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);&lt;br/&gt;&amp;nbsp;　　&amp;nbsp;&amp;nbsp; $excelData = array();&lt;br/&gt;&amp;nbsp;　　　for ($row = 1; $row &amp;lt;= $highestRow; $row++) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　&amp;nbsp; for ($col = 0; $col &amp;lt; $highestColumnIndex; $col++) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $excelData[$row][] =(string)$objWorksheet-&amp;gt;getCellByColumnAndRow($col, $row)-&amp;gt;getValue();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $excelData;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;}&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-indent: 2em; text-align: left;&quot;&gt;&lt;br style=&quot;color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #222222; font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; background-color: #FFFFFF;&quot;&gt;第四，以上就是导入的全部内容，phpExcel包附在最后。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;line-height: 32px; color: #FF0000;&quot;&gt;（二）Excel的导出（相对于导入简单多了）&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;第一，先查出数据库里面要生成Excel的数据，如：&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;$data= M(&amp;#39;User&amp;#39;)-&amp;gt;findAll();&amp;nbsp;&amp;nbsp; //查出数据&lt;br/&gt;$name=&amp;#39;Excelfile&amp;#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp; //生成的Excel文件文件名&lt;br/&gt;$res=service(&amp;#39;ExcelToArrary&amp;#39;)-&amp;gt;push($data,$name);&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255); text-indent: 2em; text-align: left;&quot;&gt;第二，ExcelToArrary类,用来引用phpExcel并处理数据的&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 32px; background: rgb(242, 246, 251); width: 800px; clear: both; border-top: 1px solid rgb(0, 153, 204); border-right: 1px solid rgb(0, 153, 204); border-left: 1px solid rgb(0, 153, 204); border-image: initial; border-bottom: none; overflow: hidden; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;span style=&quot;line-height: 30px; float: right;&quot;&gt;&lt;a data=&quot;45280&quot; id=&quot;copybut45280&quot; style=&quot;color: rgb(51, 51, 51); cursor: pointer;&quot;&gt;&lt;span style=&quot;text-decoration:underline;&quot;&gt;复制代码&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;代码如下:&lt;/div&gt;&lt;div id=&quot;code45280&quot; style=&quot;margin: 0px auto 3px; padding: 0px 3px 0px 5px; outline: none; line-height: 32px; background: rgb(221, 237, 251); border: 1px solid rgb(0, 153, 204); width: 798px; color: rgb(34, 34, 34); font-family: tahoma, arial, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 16px; white-space: normal; text-indent: 2em; text-align: left;&quot;&gt;&lt;br/&gt;class ExcelToArrary extends Service{&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function __construct() {&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*导入phpExcel核心类&amp;nbsp;&amp;nbsp;&amp;nbsp; 注意 ：你的路径跟我不一样就不能直接复制*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include_once(&amp;#39;./Excel/PHPExcel.php&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 导出excel函数*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function push($data,$name=&amp;#39;Excel&amp;#39;){&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_reporting(E_ALL);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date_default_timezone_set(&amp;#39;Europe/London&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel = new PHPExcel();&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*以下是一些设置 ，什么作者&amp;nbsp; 标题啊之类的*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel-&amp;gt;getProperties()-&amp;gt;setCreator(&amp;quot;转弯的阳光&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setLastModifiedBy(&amp;quot;转弯的阳光&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setTitle(&amp;quot;数据EXCEL导出&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setSubject(&amp;quot;数据EXCEL导出&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setDescription(&amp;quot;备份数据&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setKeywords(&amp;quot;excel&amp;quot;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setCategory(&amp;quot;result file&amp;quot;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*以下就是对处理Excel里的数据， 横着取数据，主要是这一步，其他基本都不要改*/&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach($data as $k =&amp;gt; $v){&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $num=$k+1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel-&amp;gt;setActiveSheetIndex(0)&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Excel的第A列，uid是你查出数组的键值，下面以此类推&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setCellValue(&amp;#39;A&amp;#39;.$num, $v[&amp;#39;uid&amp;#39;])&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setCellValue(&amp;#39;B&amp;#39;.$num, $v[&amp;#39;email&amp;#39;])&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;setCellValue(&amp;#39;C&amp;#39;.$num, $v[&amp;#39;password&amp;#39;])&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 3px 0px; outline: none; line-height: 30px; text-indent: 2em; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;setTitle(&amp;#39;User&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objPHPExcel-&amp;gt;setActiveSheetIndex(0);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;#39;Content-Type: application/vnd.ms-excel&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;#39;Content-Disposition: attachment;filename=&amp;quot;&amp;#39;.$name.&amp;#39;.xls&amp;quot;&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&amp;#39;Cache-Control: max-age=0&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &amp;#39;Excel5&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objWriter-&amp;gt;save(&amp;#39;php://output&amp;#39;);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 26 Mar 2021 10:46:07 +0800</pubDate></item><item><title>zend org.eclipse.osgi 错误处理办法</title><link>https://www.youngpawel.cn/uncategorized/4/</link><description>&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;如果你在汉化，或者安装包的时候发生以下错误：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255); text-align: center;&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;log文件中提示：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;!ENTRY org.eclipse.osgi 4 0 2015-07-11 01:37:53.684&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;!MESSAGE 应用程序错误&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;!STACK 1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;解决办法：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Helvetica, Arial, &amp;quot;Lucida Grande&amp;quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; outline: 0px; padding: 0px; vertical-align: baseline; hyphens: auto; overflow-wrap: break-word; word-break: break-all; text-indent: 2em; color: rgb(68, 68, 68); white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;font-size:14px;background-color:#FFFFFF;&amp;quot;; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #333333;&quot;&gt;删除eclipse/configuration 目录下的 org.eclipse.osgi org.eclipse.update 两个子目录&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 26 Mar 2021 10:43:41 +0800</pubDate></item><item><title>PHP生成PDF完美支持中文,解决TCPDF乱码</title><link>https://www.youngpawel.cn/uncategorized/3/</link><description>&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;PHP&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;生成PDF格式文件以&lt;/span&gt;TCPDF&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;为基础，TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8，Unicode，HTML和&amp;nbsp;XHTML。在基于PHP开发的Web应用中，使用它来输出PDF文件是绝佳的选择。但毕竟这款开源软件是外国人开发的，对中文的支持也不是那么尽如人意，因此我们需要对它作进一步的强化。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;首先要到TCPDF官网下载TCPDF最新版。访问http://www.tcpdf.org&amp;nbsp;，单击导航条上的”Download”链接，即可下载到最新版本的TCPDF压缩包。因为里面包含了许多的TCPDF范例和字体文件，因此下载的文件比较大，大概有10M左右。下载完后解压它，会得到一个名为tcpdf的目录。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;将此目录移动到WEB网站的根目录下(假设您使用的是Apache，并且使用80端&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;口，如有不同请根据实际情况修改)，打开浏览器，访问&amp;nbsp;http://localhost/tcpdf/&amp;nbsp;应该就可以看到此目录下的文件和文件夹列表。由于TCPDF已经自带了一些范例，因此为了节省时间，我们可以直接对范例进行修改再使用。打开tcpdf目&amp;nbsp;录下的examples目录，下面有50多个范例文件，其中example_038.php就是用来测试东亚字体的(比如简体/繁体中文、日文等等)，打开此文件，找到$pdf-&amp;gt;SetFont&amp;nbsp;这一行，修改为：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;SetFont(‘stsongstdlight’,&amp;nbsp;”,&amp;nbsp;20);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;这一行代码的作用是设置PDF正文所用的字体及字号。其中”stsongstdlight”表示”STSongStdLight”字体，这是Adobe&amp;nbsp;Reader的默认简体中文字体，TCPDF中已经内置这个字体的配置文件，我们只需直接调用即可。接下来，&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;Write(0,’&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;敏捷的棕毛狐狸跃过那只懒狗&lt;/span&gt;‘,&amp;nbsp;”,&amp;nbsp;0,&amp;nbsp;’L&amp;#39;,&amp;nbsp;true,&amp;nbsp;0,&amp;nbsp;false,&amp;nbsp;false,&amp;nbsp;0);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;Write(0,’The&amp;nbsp;quick&amp;nbsp;brown&amp;nbsp;fox&amp;nbsp;jumps&amp;nbsp;over&amp;nbsp;the&amp;nbsp;lazy&amp;nbsp;dog.’,&amp;nbsp;”,&amp;nbsp;0,&amp;nbsp;’L&amp;#39;,&amp;nbsp;true,&amp;nbsp;0,&amp;nbsp;false,&amp;nbsp;false,&amp;nbsp;0);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;Write(0,’1234567890′,&amp;nbsp;”,&amp;nbsp;0,&amp;nbsp;’L&amp;#39;,&amp;nbsp;true,&amp;nbsp;0,&amp;nbsp;false,&amp;nbsp;false,&amp;nbsp;0);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;保存，然后访问&amp;nbsp;http://localhost/tcpdf/examples/example_038.php&amp;nbsp;就可以生成一份PDF文档了:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;使用默认中文字体生成的PDF文件&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;这种方式生成的PDF文件的优点是：文件体积小，生成快速。但也有缺点是，没有嵌入中文字体，只限于安装了Adobe&amp;nbsp;Reader之后才能正常显示。那万一用户使用的是FoxIt&amp;nbsp;Reader或者是Linux操作系统呢？显示效果就不一样了。因此，为了保证生成的PDF文件在任何环境下都有同样的显示效果，嵌入字体是必需的。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; text-align: left;&quot;/&gt;Windows&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;下有很多中文字体，但是我们要用在TCPDF中的中文字体有下面几个要求：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;支持Unicode，因为TCPDF支持的是Unicode;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;体积越小越好;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;最好是也支持繁体中文;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;这样看来，微软雅黑以及方正的一些字体都符合要求。但是他们都是商业字体，而且个头都不小，以微软雅黑为例，msyh.ttf&amp;nbsp;文件就超过10M，如果使用它，生成的PDF文件体积也会很大。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; text-align: left;&quot;/&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;综合考虑，我觉得”Droid&amp;nbsp;Sans&amp;nbsp;Fallback”字体符合要求：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;首先它是免费字体;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;其次它也是Unicode编码，支持简体繁体中文以及日文韩文等等;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;·&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;然后它的体积很小，不超过5M。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;然而TCPDF不支持TTF字体文件，因此我们先将它转换成TCPDF支持的格式，然后再使用。在TCPDF目录下有个fonts子目录，这个子目录下又有个utils，这里面带有一个字体转换工具ttf2ufm.exe。下面是转换的步骤：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; text-align: left;&quot;/&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;在网上很容易找到Droid&amp;nbsp;Sans&amp;nbsp;Fallback字体的下载链接，因此在这里就没有必要多做描述了。我们把下载到的&amp;nbsp;DroidSansFallback.ttf&amp;nbsp;复制到&amp;nbsp;TCPDF\fonts\utils&amp;nbsp;下面，然后打开Windows的命令行，切换到此路径下，输入如下命令：&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;D:\www\tcpdf\fonts\utils&amp;gt;ttf2ufm&amp;nbsp;-a&amp;nbsp;-F&amp;nbsp;DroidSansFallback.ttf&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;等待一段时间，等到命令行窗口显示&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;“Finished&amp;nbsp;-&amp;nbsp;font&amp;nbsp;files&amp;nbsp;created”&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;之后，可以发现此目录下生成了DroidSansFallback.afm,DroidSansFallback.t1a&amp;nbsp;和&amp;nbsp;DroidSansFallback.ufm&amp;nbsp;这三个文件。&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; text-align: left;&quot;/&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;在命令行中输入&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;“C:\Program&amp;nbsp;Files\WAMP\PHP5\php.exe”&amp;nbsp;-q&amp;nbsp;makefont.php&amp;nbsp;DroidSansFallback.ttf&amp;nbsp;DroidSansFallback.ufm&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;说明：这里的”C:\Program&amp;nbsp;Files\WAMP\PHP5\php.exe”为php.exe文件所在的路径，请根据实际情况输入。回车运行之后，稍等片刻，命令行窗口中会提示&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;Font&amp;nbsp;definition&amp;nbsp;file&amp;nbsp;generated&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;至此大功告成。将生成的droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件复制到&amp;nbsp;TCPDF\fonts&amp;nbsp;下面即可。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;生成不成功也没问题，另一个方法是到Joomla中文官网http://www.joomlagate.com下载Joomla中文程序找到\language\pdf_fonts目录下复制droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件也是可以的&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; text-align: left;&quot;/&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;打开example_038.php文件，将&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;SetFont(‘stsongstdlight’,&amp;nbsp;”,&amp;nbsp;20);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;修改为&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;SetFont(‘droidsansfallback’,&amp;nbsp;”,&amp;nbsp;20);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;这样就能够调用我们刚才生成的字体，再访问&amp;nbsp;http://localhost/tcpdf/examples/example_038.php&amp;nbsp;就可以看到重新生成的PDF文档。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;嵌入DroidSansFallback字体后的PDF文档&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;附注：SetHeaderData里中文的解决方法为：tcpdf\config\tcpdf_config.php&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;define&amp;nbsp;(‘PDF_FONT_NAME_MAIN’,&amp;nbsp;’helvetica’);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;改为：&lt;/span&gt;&amp;nbsp;define&amp;nbsp;(‘PDF_FONT_NAME_MAIN’,&amp;nbsp;’stsongstdlight’);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;define&amp;nbsp;(‘PDF_FONT_NAME_DATA’,&amp;nbsp;’helvetica’);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;改为：&lt;/span&gt;&amp;nbsp;define&amp;nbsp;(‘PDF_FONT_NAME_DATA’,&amp;nbsp;’stsongstdlight’);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;就可以把example_038.php文件中的&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;SetHeaderData(PDF_HEADER_LOGO,&amp;nbsp;PDF_HEADER_LOGO_WIDTH,&amp;nbsp;PDF_HEADER_TITLE.’&amp;nbsp;038′,&amp;nbsp;PDF_HEADER_STRING);&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;改为：&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,’&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;中文头部’,&amp;nbsp;’作者和版权’);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; font-size: 16px; color: rgb(77, 77, 77); overflow: auto hidden; overflow-wrap: break-word; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255); text-align: left; line-height: 26px !important; text-indent: 2em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;假如你的网站源码为GBK格式&amp;nbsp;输出的PDF内容为乱码的话&amp;nbsp;就需要做个简单的转换了，把需要打出的中文文字做&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; outline: 0px; padding: 16px 16px 0px; margin: 0px 0px 24px; border-left: 8px solid rgb(221, 223, 228); background: rgb(238, 240, 244); overflow: auto; overflow-wrap: break-word; word-break: normal; color: rgb(51, 51, 51); font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; white-space: normal; text-align: left; text-indent: 2em;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;iconv(“gb2312//TRANSLIT”,’utf-8′,$str);&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); overflow: auto hidden; line-height: 26px; overflow-wrap: break-word; text-align: left; text-indent: 2em;&quot;&gt;$pdf-&amp;gt;Write(0,iconv(“gb2312//TRANSLIT”,’utf-8′,’&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-family: 宋体;&quot;&gt;解决GBK网站输出中文乱码问题‘),&amp;nbsp;”,&amp;nbsp;0,&amp;nbsp;’L&amp;#39;,&amp;nbsp;true,&amp;nbsp;0,&amp;nbsp;false,&amp;nbsp;false,&amp;nbsp;0);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><pubDate>Fri, 26 Mar 2021 10:41:05 +0800</pubDate></item><item><title>uni-app 调用 jar 包</title><link>https://www.youngpawel.cn/uncategorized/1/</link><description>&lt;p&gt;&lt;strong&gt;官方文档及资源&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;uni-app 原生插件文档：&lt;a href=&quot;https://uniapp.dcloud.io/api/extend/native-plugin&quot;&gt;https://uniapp.dcloud.io/api/extend/native-plugin&lt;/a&gt;&lt;/em&gt;&lt;br/&gt; &lt;em&gt;uni-app 原生插件开发文档：&lt;a href=&quot;https://nativesupport.dcloud.net.cn/NativePlugin/README&quot;&gt;https://nativesupport.dcloud.net.cn/NativePlugin/README&lt;/a&gt;&lt;/em&gt;&lt;br/&gt; &lt;em&gt;App 离线 SDK 下载地址：&lt;a href=&quot;https://nativesupport.dcloud.net.cn/AppDocs/download/android&quot;&gt;https://nativesupport.dcloud.net.cn/AppDocs/download/android&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;App 离线 SDK 下载解压后，使用 &lt;code&gt;Android Studio&lt;/code&gt; 打开&lt;code&gt;UniPlugin-Hello-AS&lt;/code&gt; 工程，删除自带的三个模块:&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;uniplugin_component&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;uniplugin_module&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;uniplugin_richalert&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;ol class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;添加模块，将需要调用的 jar 包拷贝到新增模块的 libs文件夹下，并添加依赖：&lt;br/&gt; &lt;img src=&quot;https://img-blog.csdnimg.cn/20201008145806301.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RfUmF5,size_16,color_FFFFFF,t_70#pic_center&quot; alt=&quot;在这里插入图片描述&quot;/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;编写 js 与 jar包相互调用的中间件：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;package&amp;nbsp;com.example.handheld;

import&amp;nbsp;android.util.Log;

import&amp;nbsp;com.alibaba.fastjson.JSONObject;
import&amp;nbsp;com.cmcid.lib.Common;
import&amp;nbsp;com.cmcid.lib.Device;
import&amp;nbsp;com.cmcid.lib.OnHandleListener;
import&amp;nbsp;com.cmcid.lib.Power;
import&amp;nbsp;com.taobao.weex.annotation.JSMethod;
import&amp;nbsp;com.taobao.weex.bridge.JSCallback;
import&amp;nbsp;com.taobao.weex.common.WXModule;

public&amp;nbsp;class&amp;nbsp;HandheldModule&amp;nbsp;extends&amp;nbsp;WXModule&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;Device&amp;nbsp;device;
&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;Beep&amp;nbsp;beep;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;final&amp;nbsp;String&amp;nbsp;TAG&amp;nbsp;=&amp;nbsp;&amp;quot;Lu&amp;nbsp;Chang&amp;nbsp;li&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;JSCallback&amp;nbsp;handleCallback;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;OnHandleListener&amp;nbsp;onHandleListener&amp;nbsp;=&amp;nbsp;new&amp;nbsp;OnHandleListener()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;onDown()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(handleCallback&amp;nbsp;==&amp;nbsp;null)&amp;nbsp;return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mWXSDKInstance.runOnUiThread(new&amp;nbsp;Runnable()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;run()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JSONObject&amp;nbsp;data&amp;nbsp;=&amp;nbsp;new&amp;nbsp;JSONObject();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;down&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;invokeAndKeepAlive&amp;nbsp;可以持续回调，&amp;nbsp;invoke只能回调一次
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handleCallback.invokeAndKeepAlive(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;onUp()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(handleCallback&amp;nbsp;==&amp;nbsp;null)&amp;nbsp;return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mWXSDKInstance.runOnUiThread(new&amp;nbsp;Runnable()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;run()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JSONObject&amp;nbsp;data&amp;nbsp;=&amp;nbsp;new&amp;nbsp;JSONObject();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;up&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handleCallback.invokeAndKeepAlive(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;};

&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;初始化
&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;@JSMethod
&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;initHandheld(JSCallback&amp;nbsp;callback)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device&amp;nbsp;=&amp;nbsp;Device.getInstance(mWXSDKInstance.getContext());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.setOnHandleListener(onHandleListener);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JSONObject&amp;nbsp;result&amp;nbsp;=&amp;nbsp;new&amp;nbsp;JSONObject();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(device.connect())&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;success&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;failure&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callback.invoke(result);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;beep&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Beep(mWXSDKInstance.getContext());
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;设置监听器
&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;@JSMethod
&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;setOnHandleListener(JSCallback&amp;nbsp;callback)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.handleCallback&amp;nbsp;=&amp;nbsp;callback;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;设置功率
&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;@JSMethod
&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;setPower(JSONObject&amp;nbsp;option,&amp;nbsp;JSCallback&amp;nbsp;callback)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Power&amp;nbsp;power&amp;nbsp;=&amp;nbsp;JSONObject.parseObject(option.toJSONString(),&amp;nbsp;Power.class);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JSONObject&amp;nbsp;result&amp;nbsp;=&amp;nbsp;new&amp;nbsp;JSONObject();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.setPower(power);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;success&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;beep.playOk();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result.put(&amp;quot;code&amp;quot;,&amp;nbsp;&amp;quot;failure&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;beep.playError();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callback.invoke(result);
&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;3&quot;&gt;&lt;li&gt;&lt;p&gt;注册中间件：&lt;br/&gt; &lt;img src=&quot;https://img-blog.csdnimg.cn/20201008151215667.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RfUmF5,size_16,color_FFFFFF,t_70#pic_center&quot; alt=&quot;在这里插入图片描述&quot;/&gt;&lt;br/&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;prettyprint&quot;&gt;在&amp;nbsp;app/assets/dcloud_uniplugins.json文件中添加：
&amp;quot;plugins&amp;quot;:&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;type&amp;quot;:&amp;nbsp;&amp;quot;module&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;name&amp;quot;:&amp;nbsp;&amp;quot;HandheldModule&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;class&amp;quot;:&amp;nbsp;&amp;quot;com.example.handheld.HandheldModule&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}
]&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;4&quot;&gt;&lt;li&gt;&lt;p&gt;在 vue 中调用 jar 包中的方法：&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;&amp;lt;script&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;handheld&amp;nbsp;=&amp;nbsp;uni.requireNativePlugin(&amp;quot;HandheldModule&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;defaultPower&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;	db:&amp;nbsp;28,
&amp;nbsp;&amp;nbsp;&amp;nbsp;	dwell:&amp;nbsp;200,
&amp;nbsp;&amp;nbsp;&amp;nbsp;	idle:&amp;nbsp;50
&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;export&amp;nbsp;default&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;	data&amp;nbsp;()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;		return&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;			power:&amp;nbsp;Object.assign({},&amp;nbsp;defaultPower),
&amp;nbsp;&amp;nbsp;&amp;nbsp;		}
&amp;nbsp;&amp;nbsp;&amp;nbsp;	},
&amp;nbsp;&amp;nbsp;&amp;nbsp;	mounted()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;handheld.initHandheld((res)&amp;nbsp;=&amp;gt;&amp;nbsp;{				
&amp;nbsp;&amp;nbsp;&amp;nbsp;		});
&amp;nbsp;&amp;nbsp;&amp;nbsp;		handheld.setOnHandleListener(this.onHandler);
&amp;nbsp;&amp;nbsp;&amp;nbsp;	},
&amp;nbsp;&amp;nbsp;&amp;nbsp;	methods:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;		onHandler:&amp;nbsp;function(e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;			if&amp;nbsp;(e.code&amp;nbsp;===&amp;nbsp;&amp;#39;up&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;				
&amp;nbsp;&amp;nbsp;&amp;nbsp;			}&amp;nbsp;else&amp;nbsp;if&amp;nbsp;(e.code&amp;nbsp;===&amp;nbsp;&amp;#39;down&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;				
&amp;nbsp;&amp;nbsp;&amp;nbsp;			}
&amp;nbsp;&amp;nbsp;&amp;nbsp;		},
&amp;nbsp;&amp;nbsp;&amp;nbsp;		setPowerClick:&amp;nbsp;function(e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;			handheld.setPower(this.power,&amp;nbsp;(res)=&amp;gt;&amp;nbsp;{				
&amp;nbsp;&amp;nbsp;&amp;nbsp;			})
&amp;nbsp;&amp;nbsp;&amp;nbsp;		}
&amp;nbsp;&amp;nbsp;&amp;nbsp;	}
}
&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;5&quot;&gt;&lt;li&gt;&lt;p&gt;使用 HBuilder &lt;code&gt;生成本地打包App资源&lt;/code&gt; 拷贝到 app 资源文件夹下。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 04 Jan 2021 08:52:02 +0800</pubDate></item></channel></rss>