海运的博客

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();
}

Typecho网站更改域名

发布时间:July 27, 2013 // 分类:Typecho // No Comments

更改域名后要修改数据库中网站URL,不然会提示500错误:

UPDATE `db`.`typecho_options` SET `value` = 'http://www.haiyun.me' WHERE `typecho_options`.`name` = 'siteUrl' AND `typecho_options`.`user` =0;

全局替换数据库的的老域名为新域名:

UPDATE db.typecho_contents SET text = replace(text, 'blog.www.haiyun.me','www.haiyun.me');
分类
最新文章
最近回复
  • 404NTF: 交叉编译的作用是?
  • 404NTF: 请教一下 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go ...
  • 小智: 安利个PHP开发以太坊区块链的教程: http://xc.hubwiz.com/course/...
  • 陈浩南: 您好,您教程中的 dev.openwrt.org.cn 现在似乎不可用了。请问现在应该在哪里下...
  • 斑马斑马: 怎么查看虚拟机CPU 内存使用情况
  • zzg: http://downloads.openwrt.org.cn/PandoraBox/rali...
  • xiongrui: 看图
  • 傻狍子: filebrowser好像和这功能一样? https://github.com/filebro...
  • 陶国文: 想看看能不能安装
  • 傻狍子: 服务端设置了用户名密码认证的话,在openwrt的openvpn客户端的配置文件当中该如何更改...
页面执行耗时:0.0384秒。-->