<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soul Of Free Loop &#187; 扩展</title>
	<atom:link href="https://zohead.com/archives/tag/extension/feed/" rel="self" type="application/rss+xml" />
	<link>https://zohead.com</link>
	<description>Uranus Zhou&#039;s Blog</description>
	<lastBuildDate>Sat, 19 Jul 2025 15:42:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>PHP 7找回MySQL扩展解决WordPress问题</title>
		<link>https://zohead.com/archives/php7-mysql/</link>
		<comments>https://zohead.com/archives/php7-mysql/#comments</comments>
		<pubDate>Tue, 21 Feb 2017 14:38:03 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[扩展]]></category>

		<guid isPermaLink="false">https://zohead.com/?p=1360</guid>
		<description><![CDATA[PHP 7 使用 MySQL 的问题 最近将 VPS 上的博客程序都迁移到 Bluemix 容器上之后，运行起来倒还算稳定，前两天手贱将 Bluemix 系统上的 LNMP 环境更新到了 1.3 版本，顺带地把 PHP 也更新到 7.0.7 版本了，不过更新完成之后访问博客就碰到了 WordPress 报错： 这才想起来 PHP 7 已经完全移除了 MySQL 扩展支持，通过 phpinfo 也能看到老的 mysql_ 系列的函数都不能使用了，一般建议使用新的 PHP mysqli 或者 pdo 扩展进行替换。 我的博客程序使用的还是 WordPress 3.6 版本，自然不支持 PHP 7， [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2 id="php7-mysql-problem">PHP 7 使用 MySQL 的问题</h2>
<p>最近将 VPS 上的博客程序都<a href="https://zohead.com/archives/vps-anti-spider/">迁移</a>到 Bluemix 容器上之后，运行起来倒还算稳定，前两天手贱将 Bluemix 系统上的 <a href="https://lnmp.org/">LNMP</a> 环境更新到了 1.3 版本，顺带地把 PHP 也更新到 7.0.7 版本了，不过更新完成之后访问博客就碰到了 WordPress 报错：</p>
<pre class="brush: plain; title: ; notranslate">
您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展。
</pre>
<p>这才想起来 PHP 7 已经完全移除了 MySQL 扩展支持，通过 phpinfo 也能看到老的 <code>mysql_</code> 系列的函数都不能使用了，一般建议使用新的 PHP mysqli 或者 pdo 扩展进行替换。</p>
<p>我的博客程序使用的还是 WordPress 3.6 版本，自然不支持 PHP 7，如果直接升级 WordPress 的话又要考虑一堆 WordPress 插件的兼容性问题，于是像我这么懒的人就考虑如何把 PHP 7 的 MySQL 扩展找回来了。</p>
<h2 id="php7-mysql-ext">找回 PHP 7 的 MySQL 扩展</h2>
<p>由于 PHP 7 只是在发布前将对 MySQL 扩展的支持移除掉了，这样我们就可以检出遗留版本的支持 MySQL 扩展的 PHP 7 代码自行编译安装了，不过需要注意的就是 MySQL 扩展可是完全没有后续更新的了。</p>
<p>我们可以首先看看 LNMP 环境里 PHP 7 自带的扩展：</p>
<pre class="brush: bash; title: ; notranslate">
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext# ls
bcmath      date      ext_skel_win32.php  gmp        json      mysqlnd  pcre          pdo_odbc    pspell      simplexml  sqlite3   tokenizer  xsl
bz2         dba       fileinfo            hash       ldap      oci8     pdo           pdo_pgsql   readline    skeleton   standard  wddx       zip
calendar    dom       filter              iconv      libxml    odbc     pdo_dblib     pdo_sqlite  recode      snmp       sysvmsg   xml        zlib
com_dotnet  enchant   ftp                 imap       mbstring  opcache  pdo_firebird  pgsql       reflection  soap       sysvsem   xmlreader
ctype       exif      gd                  interbase  mcrypt    openssl  pdo_mysql     phar        session     sockets    sysvshm   xmlrpc
curl        ext_skel  gettext             intl       mysqli    pcntl    pdo_oci       posix       shmop       spl        tidy      xmlwriter
</pre>
<p>MySQL 扩展确实已经被移除了，我们可以直接在 <code>ext</code> 目录下检出老的 PHP MySQL 扩展代码：</p>
<pre class="brush: bash; title: ; notranslate">
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext# git clone https://github.com/php/pecl-database-mysql mysql --recursive
Cloning into 'mysql'...
remote: Counting objects: 145, done.
remote: Total 145 (delta 0), reused 0 (delta 0), pack-reused 145
Receiving objects: 100% (145/145), 88.41 KiB | 0 bytes/s, done.
Resolving deltas: 100% (65/65), done.
Checking connectivity... done.
</pre>
<p>使用 <code>phpize</code> 准备编译：</p>
<pre class="brush: bash; title: ; notranslate">
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext# cd mysql
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext/mysql# ls
config.m4  config.w32  CREDITS  LICENSE  mysql.mak  mysql_mysqlnd.h  package.xml  php_mysql.c  php_mysql.h  php_mysql_structs.h  README.md  tests
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext/mysql# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext/mysql# ./configure --with-php-config=/usr/local/php/bin/php-config
</pre>
<p>运行 <code>make</code> 编译之后 <code>make install</code> 确认 MySQL 扩展安装是否正确：</p>
<pre class="brush: bash; title: ; notranslate">
root@instance-007a20ff:/home/lnmp1.3/src/php-7.0.7/ext/mysql# make &amp;&amp; make install
root@instance-007a20ff:~# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
fileinfo.so  mysql.so  opcache.a  opcache.so
</pre>
<p>最后修改 <code>php.ini</code> 配置文件，增加一行：</p>
<pre class="brush: plain; title: ; notranslate">
extension = &quot;mysql.so&quot;
</pre>
<p>重新启动 LNMP 程序就能在 phpinfo 里看到 MySQL 扩展了：</p>
<p><img src="http://res.cloudinary.com/digwht2y0/image/upload/v1737442872/phpinfo-mysql.png" alt="PHP 7 下的 MySQL 扩展" title="PHP 7 下的 MySQL 扩展"></p>
<p>此时再访问 WordPress 博客就没有问题了，PHP 7 的问题初步搞定。另外网上也有人是直接把老的 MySQL 扩展静态编译进 PHP 7 程序中，这样用起来也还算比较方便的。当然后面我肯定还是要找机会直接升级 WordPress 了，毕竟 PHP 7 带着有各种漏洞的 WordPress 3.6 实在有点浪费哈，最后祝大家玩的开心。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/php7-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发布360云盘播放助手Chrome扩展</title>
		<link>https://zohead.com/archives/cloud-player-helper/</link>
		<comments>https://zohead.com/archives/cloud-player-helper/#comments</comments>
		<pubDate>Fri, 08 Apr 2016 14:50:04 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[VXG Media Player]]></category>
		<category><![CDATA[云盘]]></category>
		<category><![CDATA[助手]]></category>
		<category><![CDATA[扩展]]></category>
		<category><![CDATA[播放]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">https://zohead.com/?p=1207</guid>
		<description><![CDATA[最近一段时间以来由于我的个人电脑终端已经基本从 Windows PC 转向 Chromebook，自然之前的一些需求也要看看如何在 Chromebook 上实现。其中一个比较多的需求就是各种云盘中的在线视频播放问题（毕竟我也已经很久没有直接下载视频播放了，基本都是用云盘的离线下载）。 我目前使用的 360 云盘虽然有 Android 和 Windows 下的在线视频播放客户端，但是 Web 端的视频播放功能相对还是弱了一点，云盘里基本上只有标准 H.264 编码的 mp4 格式的视频才能直接用 Chromebook 进行在线播放。 这里还是提一下 360 云盘 Web 版的一个优点就是标准 H [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>最近一段时间以来由于我的个人电脑终端已经基本从 Windows PC 转向 Chromebook，自然之前的一些需求也要看看如何在 Chromebook 上实现。其中一个比较多的需求就是各种云盘中的在线视频播放问题（毕竟我也已经很久没有直接下载视频播放了，基本都是用云盘的离线下载）。</p>
<p>我目前使用的 360 云盘虽然有 Android 和 Windows 下的在线视频播放客户端，但是 Web 端的视频播放功能相对还是弱了一点，云盘里基本上只有标准 H.264 编码的 mp4 格式的视频才能直接用 Chromebook 进行在线播放。</p>
<blockquote>
<p>这里还是提一下 360 云盘 Web 版的一个优点就是标准 H.264 编码的 mp4 格式视频竟然还是以 html5 方式直接播放的。</p>
</blockquote>
<p>其它诸如 avi、wmv、mkv、rmvb 等很常见的视频文件都不能直接在线播放，点击时会直接提示用户下载视频到本地。</p>
<blockquote>
<p><strong>解释</strong></p>
<p>Chrome 浏览器默认只支持播放 H.264 和 WebM 编码的视频,而且 Chrome 45 以上的版本已经不支持不太安全的 NPAPI 形式的插件了（对于 Chromebook 这种终端使用 NPAPI 插件也不现实哦）。</p>
</blockquote>
<p>考虑到 360 云盘的 Android App 目前看起来通过 Chrome ARC 环境也不能正常运行，因此我就稍微花了几天时间写了一个针对 360 云盘的视频播放助手 Chrome 扩展，建议直接从 Chrome 应用商店中安装本扩展：</p>
<p><a href="https://chrome.google.com/webstore/detail/klomjfcgakppceibbbgkbdklmhiiidkl">https://chrome.google.com/webstore/detail/klomjfcgakppceibbbgkbdklmhiiidkl</a></p>
<p>本播放助手扩展主要对 360 云盘的 Web 版做了一些改进：</p>
<ul>
<li>360 云盘的文件列表界面中点击非 mp4(webm) 的视频文件也可以弹出视频播放网页；</li>
<li>视频分类界面中点击视频文件也能达到同样的效果；</li>
<li>视频播放网页上方增加播放助手图标，并显示 <code>[转码视频]</code> 和 <code>[原画视频]</code> 链接，点击可以直接播放，右键也可以复制视频链接地址到其它播放器中播放。</li>
</ul>
<p>特别需要说明的是虽然 Chrome 浏览器本身只支持播放 H.264 和 WebM 编码的视频,不过还好国外的 Video Experts Group 推出了适用于 Chrome 浏览器的 NaCl（PNaCl） 形式的视频播放插件 <code>VXG Media Player Plug-in</code>，此插件可以提升 Chrome 浏览器的视频播放能力，而且相比 NPAPI 插件也更加安全。</p>
<p>有关 <code>VXG Media Player</code> 视频播放器插件的详细介绍可以参考其官网：</p>
<p><a href="http://www.videoexpertsgroup.com/chrome-media-player-plug-in/">http://www.videoexpertsgroup.com/chrome-media-player-plug-in/</a></p>
<p><code>VXG Media Player</code> 插件的基本特性包括：</p>
<ul>
<li>支持 RTSP, RTP, UDP, RTMP, MMS， HLS 等各种常见的媒体协议；</li>
<li>支持 H.264, MPEG-4, MPEG-2 等众多的视频编码；</li>
<li>支持 AAC, PCM, G711, MP3 等音频编码格式；</li>
<li>视频解码支持硬件加速；</li>
<li>由于是 NaCl（PNaCl） 形式的插件，在不同硬件平台上兼容性比较好。</li>
</ul>
<p>安装 <code>VXG Media Player</code> 插件并经过基本测试之后发现该插件虽然也有一些问题，但也算能满足 Chromebook 上网页直接播放视频的需求了。因此经过研究 <code>VXG Media Player</code> 插件的 API 之后决定在我的云盘播放助手扩展中使用此插件以实现更加全面的视频播放支持，最终的使用方式就是：</p>
<ul>
<li>mp4(webm) 视频： <br />
直接使用 360 云盘自带的 html5 视频播放功能，效果最好；</li>
<li>avi、wmv、mkv、rmvb 等视频： <br />
调用 <code>VXG Media Player</code> 插件接口让这些格式的视频也能在云盘视频播放界面中直接播放。</li>
</ul>
<p>安装 <code>VXG Media Player</code> 插件请移步 Chrome 商店：</p>
<p><a href="https://chrome.google.com/webstore/detail/hncknjnnbahamgpjoafdebabmoamcnni">https://chrome.google.com/webstore/detail/hncknjnnbahamgpjoafdebabmoamcnni</a></p>
<p>这里贴上我的云盘播放助手扩展运行效果截图：</p>
<p><img src="http://res.cloudinary.com/digwht2y0/image/upload/v1737370806/cloud-player-helper.png" alt="云盘播放助手扩展" title="云盘播放助手扩展"></p>
<p>从上面的截图可以看到本扩展在 360 云盘播放界面增加的图标和两个链接，本扩展不会修改云盘播放界面上的默认播放效果（不管是使用 html5 视频播放或者 360 云盘的 Flash 视频播放器），只有点击增加的链接之后才会切换播放方式。</p>
<blockquote>
<p><strong>提示</strong></p>
<p>对于 mp4(webm) 格式的视频文件，由于 360 云盘已经支持比较好的 html5 视频播放效果，本扩展就没有提供使用 <code>VXG Media Player</code> 插件进行播放的功能。</p>
</blockquote>
<p>上面截图展示的就是点击 <code>[转码视频]</code> 链接之后使用 <code>VXG Media Player</code> 插件播放 mkv 视频的效果；当然你也可以在增加的 <code>[转码视频]</code> 和 <code>[原画视频]</code> 链接上点右键复制视频地址在其它播放器中播放（强烈建议 Chromebook 用户安装 Chrome 商店中的 VLC 播放器应用）。</p>
<p>如果你的 Chrome 浏览器没有安装 <code>VXG Media Player</code> 插件，那么在点击 <code>[转码视频]</code> 和 <code>[原画视频]</code> 链接时会自动提示你转到 Chrome 商店安装该媒体播放器插件：</p>
<p><img src="http://res.cloudinary.com/digwht2y0/image/upload/v1737371494/install-vxg-player.png" alt="提示安装 VXG Media Player 插件" title="提示安装 VXG Media Player 插件"></p>
<p>当然还是要说下本云盘播放助手扩展目前存在的问题：</p>
<ul>
<li><code>VXG Media Player</code> 插件的控制条暂时不支持拖动、快放、慢放、暂停操作，看起来是有些不足，视频插件更新之后应该会有改善；</li>
<li>mkv 等格式的高清视频效果没有外部 VLC 播放器的效果好；</li>
<li>360 云盘自动转码的 m3u8 HLS 视频某些情况下会出现播放速度过快的问题，还是 <code>VXG Media Player</code> 插件的锅，只能等后续更新了；</li>
<li>从上面的截图可以看到播放时会显示 <code>VXG Media Player</code> 插件的 logo 和评估版本的提醒，这个由于是个人使用也不好去掉咯。</li>
</ul>
<p>因此如果你发现 <code>VXG Media Player</code> 插件的播放效果不给力，也大可以使用其它播放器播放，本扩展并没有捆绑依赖 <code>VXG Media Player</code> 插件。</p>
<p>本扩展的源代码已经发布到 GitHub 上：</p>
<p><a href="https://github.com/zohead/cloud-disk-player-helper">https://github.com/zohead/cloud-disk-player-helper</a></p>
<p>如果你在使用云盘播放助手扩展的过程中发现任何问题，欢迎在本扩展的 Chrome 商店页面、GitHub 项目支持页面、本博客文章下提交 issue 或者留言，最后祝玩的开心～～～</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/cloud-player-helper/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>使用Chrome Redirector扩展解决网站访问问题</title>
		<link>https://zohead.com/archives/chrome-redirector/</link>
		<comments>https://zohead.com/archives/chrome-redirector/#comments</comments>
		<pubDate>Wed, 15 Apr 2015 18:02:40 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[chinaunix]]></category>
		<category><![CDATA[diigo]]></category>
		<category><![CDATA[Redirector]]></category>
		<category><![CDATA[v2ex]]></category>
		<category><![CDATA[哔哩哔哩]]></category>
		<category><![CDATA[扩展]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=899</guid>
		<description><![CDATA[最近常去的 v2ex 网站被封，后来发现在大陆只能用 https 方式访问了，本来想在 Chrome 上安装类似 HTTPS Everywhere 这种扩展实现强制 https 访问 v2ex，后来考虑到还有其它网站地址需要在访问时修改的，因此找到了 Redirector 这个通用的地址替换扩展来实现需求。 Redirector 扩展可以让用户以正则表达式形式添加需要替换的地址，并输入新的地址。新地址中可以使用源地址中正则表达式查找到的子串，查找到的子串按顺序从 $1、$2、$3 开始排列。 下面列出我实际使用的几个替换规则举例说明： v2ex https 访问： 源： ^http://(.* [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>最近常去的 v2ex 网站被封，后来发现在大陆只能用 https 方式访问了，本来想在 Chrome 上安装类似 HTTPS Everywhere 这种扩展实现强制 https 访问 v2ex，后来考虑到还有其它网站地址需要在访问时修改的，因此找到了 Redirector 这个通用的地址替换扩展来实现需求。</p>
<p><a href="https://chrome.google.com/webstore/detail/redirector/pajiegeliagebegjdhebejdlknciafen" target="_blank">Redirector</a> 扩展可以让用户以正则表达式形式添加需要替换的地址，并输入新的地址。新地址中可以使用源地址中正则表达式查找到的子串，查找到的子串按顺序从 $1、$2、$3 开始排列。</p>
<p>下面列出我实际使用的几个替换规则举例说明：</p>
<ul>
<li><strong>v2ex https 访问：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://(.*?)\.v2ex\.com/(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>https://$1.v2ex.com/$2</strong></span><br />
说明：<br />
将 v2ex.com 域名的所有请求都替换为 https 形式，$1 就是二级域名部分，$2 就是需要保留域名后面的所有 URL。</p>
<ul>
<li><strong>mobile01.com 访问：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://(.*?)\.mobile01\.com/(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>http://$1.5i01.cn/$2</strong></span><br />
说明：<br />
<span style="line-height: 1.5;">台湾的 mobile01.com IT 网站由于某些原因在大陆被和谐不能访问了，但他们弄了个 5i01.cn 的镜像，这个域名在大陆是可以正常访问的。</span></p>
<ul>
<li><strong>userscripts 代码网站：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://(.*?)userscripts\.org/(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>http://$1userscripts-mirror.org/$2</strong></span><br />
说明：<br />
userscripts.org 这个提供 Chrome、Firefox 等浏览器 user 脚本的网站挂掉了，还好 userscripts-mirror.org 提供了所有镜像备份数据。</p>
<ul>
<li><strong>chinaunix 博客地址替换：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://blog\.chinaunix\.net/space\.php\?uid=([^&amp;]*)&amp;*[^&amp;]*&amp;id=(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>http://blog.chinaunix.net/uid-$1-id-$2.html</strong></span><br />
说明：<br />
这个就是由于 chinaunix.net 网站比较坑了，系统更新之后原来的博客文章地址都不能使用了，这个规则可以将老的地址替换成现在能用的地址（从老地址里过滤出用户 ID 和文章 ID），这样可以避免原来网络上的一些 chinaunix.net 文章链接失效了。</p>
<ul>
<li><strong>B 站 html5 视频播放：</strong></li>
</ul>
<p>源 1：<br />
<span style="color: #000080;"><strong>^http://www\.bilibili\.com/video/([^/]*)</strong></span><br />
目标 1：<br />
<span style="color: #000080;"><strong>http://www.bilibili.com/mobile/video/$1.html</strong></span><br />
源 2：<br />
<span style="color: #000080;"><strong>^http://www\.bilibili\.com/video/([^/]*)/index_([^\.]*)\.html</strong></span><br />
目标 2：<br />
<span style="color: #000080;"><strong>http://www.bilibili.com/mobile/video/$1.html#page=$2</strong></span><br />
说明：<br />
B 站的 Flash 播放器实在有点不能忍，问题比较多，这里需要添加两条规则，分别对应视频播放网页和分页播放的网页，这样可以自动将播放的网页转到移动版 html5 视频播放界面。</p>
<ul>
<li><strong>易信网易新闻评论：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://3g\.163\.com/ntes/special/([^/]*)/wechat_article\.html\?docid=([^&amp;]*)&amp;.*</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>http://3g.163.com/touch/article.html?docid=$2</strong></span><br />
说明：<br />
易信客户端的网易新闻帐号中打开的新闻网页里不能看完整评论，需要安装网易新闻客户端，这个就比较流氓了，不过还好也可以使用这个规则自动转向普通移动网页版的新闻界面，这样就可以正常查看评论了。</p>
<p>例如易信里打开的新闻地址是这样：<br />
<em>http://3g.163.com/ntes/special/0034073A/wechat_article.html?docid=AK0RCP7S00031H2L&amp;from=index&amp;from=timeline&amp;isappinstalled=1</em></p>
<p>我们需要替换成这种形式：<br />
<em>http://3g.163.com/touch/article.html?docid=AK0RCP7S00031H2L</em></p>
<ul>
<li><strong>diigo https 访问：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^http://(.*?)\.diigo\.com/(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>https://$1.diigo.com/$2</strong></span><br />
说明：<br />
效果和 v2ex 网站是一样的，原因也是此网站很早就被和谐了。</p>
<ul>
<li><strong>Google 字体：</strong></li>
</ul>
<p>源：<br />
<span style="color: #000080;"><strong>^[^:]*://fonts\.googleapis\.com/(.*)</strong></span><br />
目标：<br />
<span style="color: #000080;"><strong>http://fonts.useso.com/$1</strong></span><br />
说明：<br />
由于 WordPress 等博客程序中使用了 Google 字体，在大陆还是不能正常访问，这里直接使用了 360 CDN 缓存的 Google 字体，目测还是比较好用的。</p>
<p>以上为本人个人使用的一些网址替换规则，有什么问题欢迎提出指正哦，后续有新的加入还会继续更新的。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/chrome-redirector/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>发布PPTV XBMC视频插件v1.0</title>
		<link>https://zohead.com/archives/pptv-xbmc-plugin/</link>
		<comments>https://zohead.com/archives/pptv-xbmc-plugin/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 15:05:36 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[XBMC]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Beautiful Soup]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[m3u]]></category>
		<category><![CDATA[m3u8]]></category>
		<category><![CDATA[Parsedom]]></category>
		<category><![CDATA[PPTV]]></category>
		<category><![CDATA[扩展]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[跨平台]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=325</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/pptv-xbmc-plugin/ 最近认识一位朋友想要在 XBMC 多媒体中心软件（http://www.xbmc.org/）上观看 PPTV（http://www.pptv.com/） 视频网站上的视频，看到有 Windows 上的 XBMC PPTV 插件，但都没法在我的 Raspberry Pi 微型电脑板上（板子虽小也支持播放 1080p 高清视频哦）运行，于是想着自己写个能够跨平台的 PPTV 视频的 XBMC 插件，顺便也拿这个练练 Python，HOHO。 既然要跨平台，那首先考虑必须全部 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/pptv-xbmc-plugin/" target="_blank">https://zohead.com/archives/pptv-xbmc-plugin/</a></p>
<p>最近认识一位朋友想要在 XBMC 多媒体中心软件（<a href="http://www.xbmc.org/" target="_blank">http://www.xbmc.org/</a>）上观看 PPTV（<a href="http://www.pptv.com/" target="_blank">http://www.pptv.com/</a>） 视频网站上的视频，看到有 Windows 上的 XBMC PPTV 插件，但都没法在我的 Raspberry Pi 微型电脑板上（板子虽小也支持播放 1080p 高清视频哦）运行，于是想着自己写个能够跨平台的 PPTV 视频的 XBMC 插件，顺便也拿这个练练 Python，HOHO。</p>
<p>既然要跨平台，那首先考虑必须全部用 XBMC 自带的 Python 脚本实现，不能调用 Windows 上 DLL 之类的鬼玩意，而且 Raspberry Pi 的 armhf 系统上也几乎不可能有 PPTV 的动态库可以用的。</p>
<p><strong>基本原理：</strong></p>
<p>通过 Python 插件发送 HTTP 请求时伪装成 iPad 客户端从 PPTV 网站上获取频道列表、视频列表、查询视频，并得到视频的实际 m3u 和 m3u8 地址。后来发现此方法得到的 m3u 和 m3u8 视频地址在 Raspberry Pi 系统中播放有问题，而且不太好直接解决。没办法，咱拿起 Wireshark 抓包神器，终于发现了 PPTV 未公开的 API 方法（其实 PPTV 一直从未公开，哈哈）得到网页 Flash 方式播放的视频地址。不过其中有个视频 key 的问题，没什么太好办法在 Python 中直接得到。最终想到通过 [<a href="http://www.flvcd.com/" target="_blank">硕鼠</a>] 网站解决，硕鼠网站得到的 PPTV 视频地址明显有问题，但有个可用之处就是他能通过 Flash 得到 PPTV 的视频 key，那就省点事从硕鼠得到视频 key，从 PPTV 未公开 API 构造视频链接和分段信息（用过 Python 自带的 json 库），最终得到真实的视频地址。</p>
<p>有关 XBMC 的插件编写详细请参考这些链接：</p>
<p><a href="http://wiki.xbmc.org/index.php?title=HOW-TO:Write_plugins_for_XBMC" target="_blank">http://wiki.xbmc.org/index.php?title=HOW-TO:Write_plugins_for_XBMC</a><br />
<a href="http://wiki.xbmc.org/index.php?title=Python_development" target="_blank">http://wiki.xbmc.org/index.php?title=Python_development</a><br />
<a href="http://wiki.xbmc.org/index.php?title=Add-on_development" target="_blank">http://wiki.xbmc.org/index.php?title=Add-on_development</a></p>
<p>其中遇到的一个问题就是 HTML 的解析问题，刚开始使用的是比较成熟好用的一个 Python 插件：<a href="http://www.crummy.com/software/BeautifulSoup/" target="_blank">Beautiful Soup</a>。这个插件的最大优势就是对不标准的 HTML 的容错性做的非常好，而且各种查找 HTML DOM 结构的函数也很强大。那就按照 Beautiful Soup 的要求解析 PPTV 的 HTML DOM，结果顺利取得，不久就发现一个问题，在 Raspberry Pi 这种比较弱的嵌入式板子上，下载 HTML 倒挺快，通过 Beautiful Soup 解析查找 HTML DOM 竟然要用去 15 秒左右的时间，这完全无法忍受，可以寻找替代品。</p>
<p>最终在 XBMC 的论坛里发现了比较好的 HTML parser 替代品：<a href="http://wiki.xbmc.org/index.php?title=Add-on:Parsedom_for_xbmc_plugins" target="_blank">Parsedom XBMC Add-on</a>。这是直接包含在 XBMC 库中的一个简单的 HTML DOM 解析扩展，import 之，下载 HTML 然后按照 class、按照 id 解析 HTML 的速度都在 1-2 秒之间，非常满意。后来使用中又发现 Parsedom 中存在的一些问题，查找原因并修正之后无伤大雅，想到干脆去掉 Parsedom 中一些我用不到的代码，直接集成到我的 py 文件中使用 ^_^。</p>
<p>略加奋战，终于在 XBMC 界面上能正常显示了，能显示频道列表了，也能进入频道显示视频列表，结果播放时发现悲剧了，iPad 的 m3u 被 XBMC 自己给分段解析然后尝试播放了，造成文件路径不对无法播放。后来使用手工修改路径的方式，尽管能播放，但造成的“效果”就是每 5-6 秒钟就需要切换一下视频，这对于 Raspberry Pi 这种暂时无法调用外部播放器的系统来说简直没法用。</p>
<p><strong>PPTV 视频 XBMC 插件 1.0 版本功能：</strong></p>
<ol>
<li>支持 www.pptv.com 上基本所有直播和点播视频；</li>
<li>支持在插件设置中选择视频质量（与实际 PPTV 视频片源对应），暂时支持：标清、高清、超清、蓝光、iPad 超清；</li>
<li>支持按影片类型、时间、更新时间、热度等条件选择过滤视频，并且所有过滤条件全部实时从 PPTV 网站获取，插件中不保存分类；</li>
<li>视频列表支持翻页处理（具体每个连续剧的集数列表没有翻页，默认全部列出来，主要感觉 1-40 集这种列表还弄分页没什么必要）；</li>
<li>不依赖任何 PPTV 的 Windows 程序和库，理论上可以在任何 XBMC 系统上使用</li>
</ol>
<p>由于 XBMC 不能原生支持中文输入等原因，暂时未支持视频搜索功能，后续将会改进。</p>
<p><strong>备注：</strong></p>
<p>本插件默认的视频质量为高清格式，需要超清或蓝光格式的在插件设置界面中进行修改即可。iPad 超清视频和直播视频分别是特殊的 m3u 和 m3u8 格式（指向 mp4 视频），需要XBMC 系统能正常播放 PPTV m3u 和 m3u8 视频（Windows 下的 XBMC 系统应该可以配置使用外部播放器来支持，不过偶懒得安装木有测试过）。</p>
<p><strong>声明：</strong></p>
<p>此插件只是从 PPTV 网站获取视频内容，所有视频版权均与此网站有关，本插件一概不负责。另外由于 PPTV 网站将来会有变化，我不保证能马上修复并解决可能出现的问题，因为说不定 PPTV 就完全把未公开的 API 给禁用了。</p>
<p>插件介绍的截图：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-intro.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-介绍" src="http://zohead.com/wp-content/uploads/pptv-xbmc-intro.jpg" alt="PPTV视频XBMC插件-介绍" width="683" height="384" /></a></p>
<p>插件设置界面：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-settings.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-设置" src="http://zohead.com/wp-content/uploads/pptv-xbmc-settings.jpg" alt="PPTV视频XBMC插件-设置" width="683" height="384" /></a></p>
<p>视频列表界面：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-video-list.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-视频列表" src="http://zohead.com/wp-content/uploads/pptv-xbmc-video-list.jpg" alt="PPTV视频XBMC插件-视频列表" width="683" height="384" /></a></p>
<p>具体视频播放界面（放的正是 《麦兜》 哈 ^_^）：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-video-play.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-播放界面" src="http://zohead.com/wp-content/uploads/pptv-xbmc-video-play.jpg" alt="PPTV视频XBMC插件-播放界面" width="683" height="384" /></a></p>
<p>本 XBMC 插件的 github 源代码库地址：</p>
<p><a href="https://github.com/zohead/pptv4xbmc" target="_blank">https://github.com/zohead/pptv4xbmc</a></p>
<p>下载 PPTV 视频 XBMC 插件：</p>
<p><a href="http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.0.zip" target="_blank">http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.0.zip</a></p>
<p>下载之后拷贝到 XBMC 系统，然后到 XBMC 系统设置中选择压缩包安装即可。我正在申请将此款插件加入 XBMC 的中文插件库，顺利的话安装此插件将会更加简单，并且在以后修改时可以直接在线更新。</p>
<p>各位在使用 PPTV 视频 XBMC 插件中如果发现任何问题，欢迎提出指正哦，另外有问题时最好能描述清楚，能附上看的是哪个视频或者哪个频道下面的话更好。 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/pptv-xbmc-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
