Typecho代码高亮Codebox转SyntaxHighlighter
发布时间:November 9, 2014 // 分类:PHP,Typecho // 1 Comment
由于SQL正则替换不支持反向引用使用PHP读取替换并重新写入数据库:
<?php
$db = 'typecho';
$user = 'root';
$pass = 'password';
try {
$dbo = new PDO('mysql:host=localhost;dbname='.$db, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
} catch (PDOException $e) {
$error = $e->getMessage();
die("PDO Execute Error : ".$error."\n");
}
$dbo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT cid,text FROM typecho_contents";
$stmt = $dbo->query($sql);
//$result = $stmt->fetch(PDO::FETCH_ASSOC);
//var_dump($result);
while (list($cid,$text)=$stmt->fetch(PDO::FETCH_NUM)){
echo $cid."\n";
$pattern = "/<code\s+?lang=[\'\"](\w+?)[\'\"]>/i";
//preg_match($pattern, $text, $matches);
//print_r($matches);
$text = preg_replace($pattern, "```\$1", $text);
$text = preg_replace('/<code>/', "```", $text);
$text = preg_replace('/<\/code>/', "```", $text);
$text = preg_replace('/^/', '<!--markdown-->', $text);
$st = $dbo->prepare("UPDATE typecho_contents set `text` = ? where cid = ?");
$st->bindParam(1, $text);
$st->bindParam(2, $cid);
$st->execute();
} PHP版本QQ密码及g_tk算法
发布时间:November 7, 2014 // 分类:PHP // No Comments
<?php
function hexchar2bin($str)
{
$arr = '';
$temp = null;
for ($i = 0; $i < strlen($str); $i = $i + 2) {
$arr .= "\\x" . substr($str, $i, 2);
}
eval('$temp="' . $arr . '";');
return $temp;
}
function getUid($uid)
{
$temp = null;
eval('$temp="' . $uid . '";');
return $temp;
}
function getEncryption($password, $uin, $vcode)
{
$uin = getUid($uin);
$str1 = hexchar2bin(strtoupper(md5($password)));
$str2 = strtoupper(md5($str1 . $uin));
return strtoupper(md5($str2 . strtoupper($vcode)));
}
//print_r(getEncryption('passwd','\x00\x00\x00\x00\xba\xaf\x34\x87','!GMO'));
function utf8_unicode($c)
{
switch (strlen($c)) {
case 1:
return ord($c);
case 2:
$n = (ord($c[0]) & 0x3f) << 6;
$n += ord($c[1]) & 0x3f;
return $n;
case 3:
$n = (ord($c[0]) & 0x1f) << 12;
$n += (ord($c[1]) & 0x3f) << 6;
$n += ord($c[2]) & 0x3f;
return $n;
case 4:
$n = (ord($c[0]) & 0x0f) << 18;
$n += (ord($c[1]) & 0x3f) << 12;
$n += (ord($c[2]) & 0x3f) << 6;
$n += ord($c[3]) & 0x3f;
return $n;
}
}
function getGTK($str)
{
$hash = 5381;
for ($i = 0, $len = strlen($str); $i < $len; ++$i) {
$hash += ($hash << 5) + utf8_unicode($str[$i]);
}
return $hash & 2147483647;
}
print_r(getGTK('@LNKTSNI0F'));另一种g_tk的算法:
<?php
function charCodeAt($str, $index)
{
$char = mb_substr($str, $index, 1, 'UTF-8');
if (mb_check_encoding($char, 'UTF-8'))
{
$ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
return hexdec(bin2hex($ret));
}
else
{
return null;
}
}
function getGTK($str)
{
$md5key = 'tencentQQVIP123443safde&!%^%1282';
$salt = 5381;
$hash = $salt << 5;
for ($i = 0, $len = strlen($str); $i < $len; ++$i)
{
$asciicode = charCodeAt($str[$i], 0);
$hash = $hash . (($salt << 5) + $asciicode);
$salt = $asciicode;
}
return md5($hash . $md5key);
}
echo getGTK('AYg8iSVJL58F4X2EHBbIT5BS'); Firefox全局字体雅黑图标字体显示乱码解决
发布时间:October 20, 2014 // 分类:Firefox // No Comments
如淘宝/土豆/github图标乱码,使用stylish规则替换全局字体:
/*强制全局雅黑 */
@-moz-document url-prefix(http://),url-prefix(https://),url-prefix(ftp://),url-prefix(file://){
*{
font-family: verdana,"Microsoft YaHei",sans-serif !important;
}
pre, code, kbd, samp, var {
font-family: "DejaVu Sans Mono", "Microsoft YaHei Mono", monospace !important;
}
}
/*土豆网*/
@-moz-document domain('tudou.com'){
*{
font-family: "Microsoft Yahei",tuiicon !important;
}
}
/*淘宝*/
@-moz-document domain('taobao.com'){
*{
font-family: verdana,"Microsoft Yahei",tb-fp-iconfont,arial !important;
}
}
/*github*/
@-moz-document domain('github.com'){
*{
font-family: "Microsoft Yahei",octicons !important;
}
} Firefox29版本之后恢复状态栏图标
发布时间:October 17, 2014 // 分类:Firefox // No Comments
Firefox29版本后使用了全新的界面并移除状态栏,导致工具栏图标较多且难看,找了几个插件恢复之前的状态栏图标:
The Addon Bar,恢复状态栏至浏览器下方。
The Puzzle Piece,功能强大,可恢复至地址栏,浏览器下方,下方最小化。
url-addon-bar,目前在使用这个,将状态栏移到地址栏。
分类
- Apache (13)
- Nginx (45)
- PHP (86)
- IIS (8)
- Mail (17)
- DNS (16)
- Cacti (14)
- Squid (5)
- Nagios (4)
- Puppet (7)
- CentOS (13)
- Iptables (23)
- RADIUS (3)
- OpenWrt (41)
- DD-WRT (1)
- VMware (9)
- 网站程序 (2)
- 备份存储 (11)
- 常用软件 (20)
- 日记分析 (10)
- Linux基础 (18)
- 欧诺代理 (0)
- Linux服务 (18)
- 系统监控 (4)
- 流量监控 (7)
- 虚拟化 (28)
- 伪静态 (2)
- LVM (3)
- Shell (18)
- 高可用 (2)
- 数据库 (16)
- FreeBSD (3)
- 网络安全 (25)
- Windows (35)
- 网络工具 (22)
- 控制面板 (3)
- 系统调优 (10)
- Cisco (3)
- VPN (6)
- ROS (20)
- Vim (14)
- KMS (4)
- PXE (2)
- Mac (1)
- Git (1)
- PE (1)
- LNS (2)
- Xshell (7)
- Firefox (13)
- Cygwin (4)
- OpenSSL (9)
- Sandboxie (3)
- StrokesPlus (1)
- AutoHotKey (4)
- Total Commander (3)
- WordPress (3)
- iMacros (6)
- Typecho (2)
- Ollydbg (1)
- Photoshop (1)
- 正则 (3)
- Debian (3)
- Python (8)
- NoSQL (6)
- 消息队列 (4)
- JS (7)
- Tmux (3)
- GO (7)
- HHVM (2)
- 算法 (1)
- Docker (2)
- PT (15)
- N1 (16)
- K2P (6)
- LUKS (4)
最新文章
- debian 12开机关机systemd-journald日志不连续解决
- debian12下initramfs-tools使用udhcpc配置dhcp ip
- dns压力测试工具queryperf使用
- sandboxie plus运行firefox 140播放视频全屏不能覆盖任务栏
- TEWA-1100G光猫使用
- 烽火光猫HG5382A3使用
- 记联通更换移动XG-040G-MD光猫
- smokeping slave同步错误illegal attempt to update using time解决
- 使用valgrind定位解决smartdns内存泄露
- 此内容被密码保护
最近回复
- 海运: 可能版本问题
- 海运: 如果运营商限制型号
- 海运: 没有
- Mruru: 烽火猫切换rootfs的方法有么大佬?
- nono: 修改光猫型号是做啥子用的
- 960: root账号默认密码hg2x0 不对哇
- rer: 感谢分享!~
- opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
- liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
- 海运: 不好意思,没有。
归档
- November 2025
- October 2025
- August 2025
- March 2025
- February 2025
- August 2024
- May 2024
- February 2024
- January 2024
- December 2023
- November 2023
- October 2023
- September 2023
- August 2023
- May 2023
- April 2023
- February 2023
- January 2023
- December 2022
- September 2022
- July 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- July 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- July 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- October 2017
- September 2017
- August 2017
- July 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- July 2016
- June 2016
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- October 2011
- September 2011
- August 2011
- July 2011