正则替换掉网页中所有超链接 替换网页中所有网址

偶尔copy下别人写好的html,只因为自己有点懒,既然是程序员,就要想办法用程序提高效率,copy别人的html经常会看到里面很多超级链接
很想换掉,手动换太麻烦,一个一个找。那么就用程序解决吧 O(∩_∩)O~ 谁让咱手懒呢。。

正则替换掉网页中所有超链接

<?php
$content = file_get_contents('test.html');
$url = 'http://www.xxtime.com';  //要换成的新网址
$preg = '/[s]href=("|')[S]*("|')/i';
$replace = ' href="' . $url . '"';
$content = preg_replace($preg, $replace, $content);  //正则替换
create_log('newhtml', $content);  //生成新文件

下面是写文件操作

function create_log($filename, $text) {
       if ( strtolower(substr($filename, -4)) != 'html' ){
              $filename .= '.html';
       }
       $filename = dirname ( __FILE__ ) . '/' . $filename;
       if (!file_exists ( $filename )) {
              exec( 'touch '. $filename);
              exec( 'chmod 777 '. $filename);
       }
       $handle = fopen ( $filename, "w+b" );
       $text .= "rn";
       fwrite($handle, $text);
       fclose ( $handle );
}

安装VirtualBox后,VMware不能上网问题解决

安装了Oracle VM VirtualBox后 发现原来虚拟机VMware中的 centos 不能上网。
自己研究了下
VirtualBox与VMware不能同时上网

第一步:进入网络管理(window7 是网络和共享中心) ,然后点击 更改适配器设置
20130720152830

第二步:右键禁用掉VirtualBox Host-Only Network 的网络服务,然后再右键选在属性。
20130720152238

第三步:在属性管理中 去掉 VirtualBox Bridged Networking Driver 前的勾
20130720152351

然后重新启动VMware

注意:
如果想回头使用VirtualBox 可按照刚才的方法
1.禁用掉VMware Network Adapter VMnet1 和 VMware Network Adapter VMnet8的网络,启用VirtualBox Host-Only Network的网络
2.然后在适配器属性管理中 勾选VirtualBox Bridged Networking Driver
3.适配器属性管理中 去掉 VMware Bridged Protocol

ubuntu软件源 sudo apt-get update

执行下列命令备份,然后编辑sources.list文件

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

尝试了下163的源,但是安装 openssh-server 的时候 没找到软件。所以就换了电子科技大学的源
编辑sources.list内容如下:

#电子科技大学
deb http://ubuntu.uestc.edu.cn/ubuntu/ quantal main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ quantal-backports main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ quantal-proposed main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ quantal-security main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ quantal-updates main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ quantal main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ quantal-backports main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ quantal-proposed main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ quantal-security main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ quantal-updates main restricted universe multiverse

执行命令更新

sudo apt-get update

Ubuntu 12.04 网络配置 Ubuntu静态IP Ubuntu上网配置

执行命令:

vim /etc/network/interfaces

编辑内容如下:

auto lo
iface lo inet loopback

#网卡eth0的配置
auto eth0
iface eth0 inet static
address 192.168.1.30 #设置得静态IP
netmask 255.255.255.0
gateway 192.168.1.1
#dns-nameservers 8.8.8.8
#network 192.168.1.0
#broadcast 192.168.1.255
#后面两条是网络号和广播号,这个可以由其它信息计算,因此无需设置
#其中dns-nameservers用于指定dns如果按照下面修改/etc/resolv.conf每次开机都被重置
#可以用去掉#号用这里的dns设置

重启生效

sudo /etc/init.d/networking restart

如果不能上网,也有可能是dns问题

sudo vim /etc/resolv.conf

设置 nameserver 8.8.8.8 即可

引自 http://www.cnblogs.com/rusty/archive/2011/04/06/2007139.html

php时间函数报错,时区问题解决 UTC PRC CST

格林威治标准时间GMT
世界协调时间UTC
夏日节约时间DST
中国时间PRC
==================================================================
在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个

"PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'UTC' for '8.0/no DST' instead in"

这样的错。如何解决呢

实际上,从 PHP 5.1.0 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息。而又在php5.1.0中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中好像如果没有设置也会强行抛出了这个错误的,解决此问题,只要本地化一下,就行了。

以下是三种方法(任选一种都行):

一、在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');

二、在页头使用 ini_set('date.timezone','Asia/Shanghai');

三、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC

重启服务器

MySQL GROUP BY 多个字段的解释

mysql语句中group by 很容易理解 是分组查询。
比如 select sum(score) from user group by name 意思是查询每个人的分数总和
但是, select sum(score) from user group by item, sex 呢?
下面是测试结果。

测试数据如下:
20130716104404

查询结果如下:
20130716104344

根据结果分析
group by 多个字段的含义是,分别以每个字段的不同组合分组
本例 item=数学 sex=1 和 item=数学 sex=2 就会分到不同组中,以此达到计算和目的