用PHP写的一个文本处理小程序

以前用Python写了一个处理SQL文件的小程序,今天也同样碰到了一个类似的要求,不过处理的对象是PHP文件,于是就用PHP写了一个处理程序。

问题的描述如下:被处理的文件的文件名类似于{$channel_id}_{$category_id}.php,所有文件内都包含一个Array变量,文件结构类似于下面:

<?php

$arrLeftMoreInfo = array (

    '0' => array (

        'name' => 'Laptop Blog',

        'url' => 'http://blogs.smarter.com/gadgets/category/laptops/',

        'icon' => 'icon_leftmoreinfo.gif',

        'type' => 'Review'

    ),

    '1' => array (

        'name' => 'How Laptops Work',

        'url' => 'http://communication.howstuffworks.com/laptop.htm',

        'icon' => 'icon_leftmoreinfo.gif',

        'type' => 'Review'

    ),

    '2' => array (

        'name' => 'Laptop Magazine',

        'url' => 'http://www.laptopmag.com/',

        'icon' => 'icon_leftmoreinfo.gif',

        'type' => 'Review'

    )

);

?>



现在的要求就是生成一个SQL文件,里面的内容就是对应表的数据插入语句。所以生成的SQL语句看起来应该类似于这个样子:

INSERT INTO `sit_seomoreinfo` 

(`id`,`ChannelID`,`CategoryID`,`name`,`url`,`icon`,`type`,`created`,`modified`) 

VALUES 

(null,2,31,'Laptop Blog','http://blogs.smarter.com/gadgets/category/laptops/','icon_leftmoreinfo.gif','Review',now(),now()),

(null,2,31,'How Laptops Work','http://communication.howstuffworks.com/laptop.htm','icon_leftmoreinfo.gif','Review',now(),now()),

(null,2,31,'Laptop Magazine','http://www.laptopmag.com/','icon_leftmoreinfo.gif','Review',now(),now()),

……

  最终的代码就是下面这个样子:  

<?php

$curDir = dirname(__FILE__);

$dh = opendir($curDir);

$i = 0;

$sqlArray = array ();

while ($file = readdir($dh)) {

    if ($file != '.' && $file != '..' && preg_match("/^([0-9]+)_([0-9]+)/.php$/", $file, $name)) {

        require $file;

        foreach ($arrLeftMoreInfo as $k => $v) {

            $i++;

            $sqlArray[] = "(null,{$name[1]},{$name[2]},'{$v['name']}','{$v['url']}','{$v['icon']}','{$v['type']}',now(),now())";

        }

    }

}

closedir($dh);

$sqlFile = "INSERT INTO `sit_seomoreinfo` /r/n" .

"(`id`,`ChannelID`,`CategoryID`,`name`,`url`,`icon`,`type`,`created`,`modified`) /r/n" .

"VALUES /r/n" . implode(",/r/n", $sqlArray).';';

pr($i);

file_put_contents('import_moreinfo.sql',$sqlFile);

?>

  打完收工。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值