标签 auto 下的文章

在写ArkPlus框架过程中一直使用的基于PDO驱动的MySQL,因为项目需求,要转一个SQLite版本,于是写了这个简单的转换函数,实现MySQL建表语句到SQLite的平滑转换,有需要的童鞋们可以拿去。

/**
 * mysql(ctreate_table)转sqlite语句
 * @author anrip[mail@anrip.com]
 * @version 2.1, 2013-01-18 17:02
 * @link http://www.anrip.com/?arkplus
 */
function ark_table_mysql2sqlite($sql) {
  $expr = array(
    '/`(\w+)`\s/' => '[$1] ',
    '/\s+UNSIGNED/i' => '',
    '/\s+[A-Z]*INT(\([0-9]+\))/i' => ' INTEGER$1',
    '/\s+INTEGER\(\d+\)(.+AUTO_INCREMENT)/i' => ' INTEGER$1',
    '/\s+AUTO_INCREMENT(?!=)/i' => ' PRIMARY KEY AUTOINCREMENT',
    '/\s+ENUM\([^)]+\)/i' => ' VARCHAR(255)',
    '/\s+ON\s+UPDATE\s+[^,]*/i' => ' ',
    '/\s+COMMENT\s+(["\']).+\1/iU' => ' ',
    '/[\r\n]+\s+PRIMARY\s+KEY\s+[^\r\n]+/i' => '',
    '/[\r\n]+\s+UNIQUE\s+KEY\s+[^\r\n]+/i' => '',
    '/[\r\n]+\s+KEY\s+[^\r\n]+/i' => '',
    '/,([\s\r\n])+\)/i' => '$1)',
    '/\s+ENGINE\s*=\s*\w+/i' => ' ',
    '/\s+CHARSET\s*=\s*\w+/i' => ' ',
    '/\s+AUTO_INCREMENT\s*=\s*\d+/i' => ' ',
    '/\s+DEFAULT\s+;/i' => ';',
    '/\)([\s\r\n])+;/i' => ');',
  );
  $sql = preg_replace(array_keys($expr), array_values($expr), $sql);
  return $sql === null ? '{table_mysql2sqlite_error}' : $sql;
}

维护服务器时,有可能需要热插拔硬盘,但是Linux好像并不买单,不会自动检测磁盘的装卸,为此热插拔后,我们需要通知Linux服务磁盘状态。

#添加磁盘,其中 2 0 1 0 分别对应 HOST CHAN DEV LUN
echo "scsi add-single-device 2 0 1 0" > /proc/scsi/scsi
#删除磁盘,其中 2 0 1 0 分别对应 HOST CHAN DEV LUN
echo "scsi add-single-device 2 0 1 0" > /proc/scsi/scsi
#查看磁盘
cat /proc/scsi/scsi
#命令输出
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR00 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware   Model: Virtual disk     Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02
Host: scsi2 Channel: 00 Id: 01 Lun: 00
  Vendor: VMware   Model: Virtual disk     Rev: 1.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 02

参数解析:
HOST 是硬盘所在SCSI控制器号(本例中,磁盘所在通道为2);
CHAN 是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了);
DEV 是硬盘的SCSI ID号(可以通过具体插入的硬盘插槽来判断);
LUN 是硬盘的lun号(默认情况都是0)

今天做小春的一个小项目,又一次遇到了“框架自适应高度和宽度”的问题,此次记录下来代码备查。

<html>
<head>
<title>小春网</title>
</head>
<frameset cols="100%" border="0" frameborder="no" framespacing="0">
  <frame src="http://www.xiaochuncnjp.com" />
  <noframes>
    <body>请点击<a href="http://www.xiaochuncnjp.com">这里</a>访问本站镜像。</body>
  </noframes>
</frameset>
</html>