玩第一关,每次都没法通关,最后,经验总结如下:
1.必须要在适当机会对核心人物发起攻击。
2.必须要注意保存自己。
3.一定要避开那些小人物,遇到机会也要狠狠的打。
---
如果不对大人物加以攻击力度,不光是小人物很嚣张,而系统设定上也会让大人物腾出时间和瞄准机会对你下手,你的血液很快就掉光了,一个人肯定过来了关。
人生何尝不是,需要对核心的事情不放,不断的去打击它,了解她,对细小问题也要在有机会的时候给捎带解决了,才有可能成功不是,呵呵。
1.必须要在适当机会对核心人物发起攻击。
2.必须要注意保存自己。
3.一定要避开那些小人物,遇到机会也要狠狠的打。
---
如果不对大人物加以攻击力度,不光是小人物很嚣张,而系统设定上也会让大人物腾出时间和瞄准机会对你下手,你的血液很快就掉光了,一个人肯定过来了关。
人生何尝不是,需要对核心的事情不放,不断的去打击它,了解她,对细小问题也要在有机会的时候给捎带解决了,才有可能成功不是,呵呵。
Linux的rpm包名称中经常有什么64位,32位,i386,i586,Noarch等等之类的,让人犯晕,不知道哪个是合适的。先一个一个搞清楚这些概念。
64位,32位指的是操作系统。
操作系统只是硬件和应用软件中间的一个平台。
32位操作系统针对的32位的CPU设计。
64位操作系统针对的64位的CPU设计。
32位处理器和64位处理器,其计数都是8的倍数。它表示一个时钟周期里,处理器处理的二进制代码数。32位处理器每个时钟周期处理32位数据即4个字节,64位处理器处理64位数据即8个字节。
2的32次方= 4G左右,很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。而64位CPU的内存寻址空间是2的64次方=120GB左右。
用命令file /sbin/init或者getconf LONG_BIT可以查看是32位还是64位。
i386:几乎任何的X86平台,不论是旧的pentum或是新的pentum-IV和K7系统CPU,都能够正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级。
i586:就是586等级的电脑,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级。
i686:pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级。
Noarch:代表跟硬件体系结构无关。不管是 x86、PowerPC,Sparc 或 Alpha 系统。
来源:http://hi.baidu.com/simayilong80/blog/item/6c8e2651428164808c543080.html
64位,32位指的是操作系统。
操作系统只是硬件和应用软件中间的一个平台。
32位操作系统针对的32位的CPU设计。
64位操作系统针对的64位的CPU设计。
32位处理器和64位处理器,其计数都是8的倍数。它表示一个时钟周期里,处理器处理的二进制代码数。32位处理器每个时钟周期处理32位数据即4个字节,64位处理器处理64位数据即8个字节。
2的32次方= 4G左右,很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。而64位CPU的内存寻址空间是2的64次方=120GB左右。
用命令file /sbin/init或者getconf LONG_BIT可以查看是32位还是64位。
i386:几乎任何的X86平台,不论是旧的pentum或是新的pentum-IV和K7系统CPU,都能够正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级。
i586:就是586等级的电脑,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级。
i686:pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级。
Noarch:代表跟硬件体系结构无关。不管是 x86、PowerPC,Sparc 或 Alpha 系统。
来源:http://hi.baidu.com/simayilong80/blog/item/6c8e2651428164808c543080.html
Alternative PHP Cache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,它能够隐藏编辑的脚本。
所以对于后来命令,如果它已经改变了,PHP只能重新编辑脚本。
主要是加速PHP
下载地址http://pecl.php.net/package/APC
解压 安装
/usr/local/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
make
make install
cp /usr/local/php/lib/php/extensions/no-debug-zts-20060613/apc.so /usr/local/php/lib/php/extensions/apc.so
chmod 755 /usr/local/php/lib/php/extensions/apc.so
配置/etc/php.ini 末尾加入
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On
重启apache
apc.cache_by_default = On
是否默认对所有文件启用缓冲。 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存
apc.enabled = On
是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。
pc.filters =
一个以逗号分隔的POSIX扩展正则表达式列表。
如果源文件名与任意一个模式匹配,则该文件不被缓存。
注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。
如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。
apc.ttl = 0
缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。
apc.user_ttl = 0
类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。
apc.gc_ttl = 3600
缓存条目在垃圾回收表中能够存在的秒数
此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 中.国.站长站
而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。设为零将禁用此特性。
pc.max_file_size = 1M
禁止大于此尺寸的文件被缓存。
apc.num_files_hint = 1000
Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。
如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。
apc.shm_segments = 1
为编译器缓冲区分配的共享内存块数量(建议值为1)。
如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值,你可以尝试增大此值。
apc.shm_size = 30
每个共享内存块的大小(以MB为单位,建议值为128~256)。
有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。
apc.write_lock = On
是否启用写入锁。
在非常繁忙的服务器上,无论是启动服务还是修改文件,都可能由于多个进程企图同时缓存一个文件而导致竞争条件
启用该指令可以避免竞争条件的出现。下面贴出本人试验的以及拷贝的一兄弟的试验代码apc1.php<?php
/*
ob_start();
$info="My apc";
apc_store("info",$info);
//echo apc_fetch("info");
echo apc_cache_info ();
*/
?>
<?php
//apc test
//constants
$constants = array('APC_FILE' => 'apc.php', 'AUTHOR' => 'tim');
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo 'APC_FILE='.APC_FILE.'<br>';
echo 'AUTHOR='.AUTHOR.'<br>';//variable
if(!apc_fetch('time1')) apc_store('time1', time());
if(!apc_fetch('time2')) apc_store('time2', time(),2); //set ttl
echo 'time1:'.apc_fetch('time1').'<br>';
echo 'time2:'.apc_fetch('time2').'<br>';//object
class a{
function b(){return 'i am b in class a';}
}
apc_store('obj',new a());
$a = apc_fetch('obj');
echo $a->b();
echo '<br>';
//array
$arr = array('a'=>'i am a','b'=>'i am b');
apc_store('arr',$arr);
$apc_arr = apc_fetch('arr');
print_r($apc_arr);
?> apc2.php<?php
echo apc_fetch("info");
apc_load_constants('numbers');
echo 'APC_FILE='.APC_FILE.'<br>';
echo 'AUTHOR='.AUTHOR.'<br>';
?>
来源:http://home.phpchina.com/space.php?uid=29824&do=blog&id=40482
所以对于后来命令,如果它已经改变了,PHP只能重新编辑脚本。
主要是加速PHP
下载地址http://pecl.php.net/package/APC
解压 安装
/usr/local/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
make
make install
cp /usr/local/php/lib/php/extensions/no-debug-zts-20060613/apc.so /usr/local/php/lib/php/extensions/apc.so
chmod 755 /usr/local/php/lib/php/extensions/apc.so
配置/etc/php.ini 末尾加入
extension=apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On
重启apache
apc.cache_by_default = On
是否默认对所有文件启用缓冲。 若设为Off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存
apc.enabled = On
是否启用APC,如果APC被静态编译进PHP又想禁用它,这是唯一的办法。
pc.filters =
一个以逗号分隔的POSIX扩展正则表达式列表。
如果源文件名与任意一个模式匹配,则该文件不被缓存。
注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。
如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。
apc.ttl = 0
缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。
apc.user_ttl = 0
类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。
apc.gc_ttl = 3600
缓存条目在垃圾回收表中能够存在的秒数
此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 中.国.站长站
而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此TTL值为止。设为零将禁用此特性。
pc.max_file_size = 1M
禁止大于此尺寸的文件被缓存。
apc.num_files_hint = 1000
Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。
如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。
apc.shm_segments = 1
为编译器缓冲区分配的共享内存块数量(建议值为1)。
如果APC耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值,你可以尝试增大此值。
apc.shm_size = 30
每个共享内存块的大小(以MB为单位,建议值为128~256)。
有些系统(包括大多数BSD变种)默认的共享内存块大小非常少。
apc.write_lock = On
是否启用写入锁。
在非常繁忙的服务器上,无论是启动服务还是修改文件,都可能由于多个进程企图同时缓存一个文件而导致竞争条件
启用该指令可以避免竞争条件的出现。下面贴出本人试验的以及拷贝的一兄弟的试验代码apc1.php<?php
/*
ob_start();
$info="My apc";
apc_store("info",$info);
//echo apc_fetch("info");
echo apc_cache_info ();
*/
?>
<?php
//apc test
//constants
$constants = array('APC_FILE' => 'apc.php', 'AUTHOR' => 'tim');
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo 'APC_FILE='.APC_FILE.'<br>';
echo 'AUTHOR='.AUTHOR.'<br>';//variable
if(!apc_fetch('time1')) apc_store('time1', time());
if(!apc_fetch('time2')) apc_store('time2', time(),2); //set ttl
echo 'time1:'.apc_fetch('time1').'<br>';
echo 'time2:'.apc_fetch('time2').'<br>';//object
class a{
function b(){return 'i am b in class a';}
}
apc_store('obj',new a());
$a = apc_fetch('obj');
echo $a->b();
echo '<br>';
//array
$arr = array('a'=>'i am a','b'=>'i am b');
apc_store('arr',$arr);
$apc_arr = apc_fetch('arr');
print_r($apc_arr);
?> apc2.php<?php
echo apc_fetch("info");
apc_load_constants('numbers');
echo 'APC_FILE='.APC_FILE.'<br>';
echo 'AUTHOR='.AUTHOR.'<br>';
?>
来源:http://home.phpchina.com/space.php?uid=29824&do=blog&id=40482
编辑文件httpd.conf
找到
Listen 80
在下面加一行
Listen 443
Listen 8080
注意:上面这个监听8080必须要,否则就有下面的端口依旧没法打开,通过:apachectl -t ,检查配置也是Ok的。
再找到我虚拟主机部分的:
NameVirtualHost *:8080
NameVirtualHost *:443
8080:
下面是抄下其他人的。。。
阅读全文
找到
Listen 80
在下面加一行
Listen 443
Listen 8080
注意:上面这个监听8080必须要,否则就有下面的端口依旧没法打开,通过:apachectl -t ,检查配置也是Ok的。
再找到我虚拟主机部分的:
NameVirtualHost *:8080
NameVirtualHost *:443
8080:
下面是抄下其他人的。。。
阅读全文
很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。
这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。
阅读全文
这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。
阅读全文
一只鸭子在辽阔的平原上练习飞翔,它天天想像着像一只老鹰一样能够展翅飞翔在天空,可是它一次次地摔倒,仍旧没有飞起来。树上一只小鸟问它母亲:那不是一只鸭子吗,它为什么那么拼命地想飞呢?母亲告诉它的孩子:那就是一只鸭子,但它总认为自己是只老鹰。
寓言讽刺得很恰当,它告诉我们不要作无谓的选择,那对改变命运是无济于事的。可是,如果寓言继续下去,或许我们就不这样认为了:主人准备把这批鸭子卖掉,所有的鸭子都被捉起来了,当主人再去捉那只试图飞翔的鸭子时却没有能力捉住它了。那只鸭子动作很敏捷,最终逃脱了厄运,成为一只自由的鸭子。
所以,那只看似愚蠢的鸭子没有白白练习飞翔,那一阵子的练习起了作用,起码它能逃过一劫。
阅读全文
寓言讽刺得很恰当,它告诉我们不要作无谓的选择,那对改变命运是无济于事的。可是,如果寓言继续下去,或许我们就不这样认为了:主人准备把这批鸭子卖掉,所有的鸭子都被捉起来了,当主人再去捉那只试图飞翔的鸭子时却没有能力捉住它了。那只鸭子动作很敏捷,最终逃脱了厄运,成为一只自由的鸭子。
所以,那只看似愚蠢的鸭子没有白白练习飞翔,那一阵子的练习起了作用,起码它能逃过一劫。
阅读全文
实例如下:
修改/usr/local/webserver/nginx/conf/Nginx.conf
在尾部加上:
我用的bo-blog,刚才,发现博客的服务器的负载很高,就一博客,不致与:
Top一看:
Mysql:
如下:
一看索引没有,赶紧加上索引:
SELECT `blogid`,`pubtime`,`edittime`,`blogalias` FROM `boblog_blogs` WHERE `property`<2 ORDER BY
alter table `boblog_blogs` add index property(property);
SELECT `blogid`,`title`,`blogalias` FROM `boblog_blogs` WHERE `property`<'2' AND `pubtime`<'13040783';
alter table `boblog_blogs` add index property_pubtime(property,pubtime);
SELECT * FROM `boblog_blogs` WHERE `property`<2 AND `frontpage`=0 ORDER BY `sticky`DESC, `pubtime`;
alter table `boblog_blogs` add index property_frontpage(property,frontpage);
博客次数和上面是一个表,索引加多了,update效率会不会下降?如下:
UPDATE LOW_PRIORITY `boblog_blogs` SET `views`=`views`+1 WHERE `blogid`='4257'
看来一个博客的访问设计仍旧需要考究和研究,我的博文也就3000多,DB性能就显现出来了。
后记:
查看后依旧有这样那样的小问题,但sleep和锁表大为缓解。
后来,负载降低,由25降低到5,说明还是有点效果滴嘛:
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
| 1 | SIMPLE | boblog_blogs | range | property,property_pubtime,property_frontpage | property | 4 | NULL | 3526 | Using where; Using filesort |
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
Top一看:
Mysql:
如下:
一看索引没有,赶紧加上索引:
SELECT `blogid`,`pubtime`,`edittime`,`blogalias` FROM `boblog_blogs` WHERE `property`<2 ORDER BY
alter table `boblog_blogs` add index property(property);
SELECT `blogid`,`title`,`blogalias` FROM `boblog_blogs` WHERE `property`<'2' AND `pubtime`<'13040783';
alter table `boblog_blogs` add index property_pubtime(property,pubtime);
SELECT * FROM `boblog_blogs` WHERE `property`<2 AND `frontpage`=0 ORDER BY `sticky`DESC, `pubtime`;
alter table `boblog_blogs` add index property_frontpage(property,frontpage);
博客次数和上面是一个表,索引加多了,update效率会不会下降?如下:
UPDATE LOW_PRIORITY `boblog_blogs` SET `views`=`views`+1 WHERE `blogid`='4257'
看来一个博客的访问设计仍旧需要考究和研究,我的博文也就3000多,DB性能就显现出来了。
后记:
查看后依旧有这样那样的小问题,但sleep和锁表大为缓解。
后来,负载降低,由25降低到5,说明还是有点效果滴嘛:
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
| 1 | SIMPLE | boblog_blogs | range | property,property_pubtime,property_frontpage | property | 4 | NULL | 3526 | Using where; Using filesort |
+----+-------------+--------------+-------+----------------------------------------------+----------+---------+------+------+-----------------------------+
Mysql版本号:
mysql> select version();
+------------+
| version() |
+------------+
| 5.0.26-log |
+------------+
配置:
vi /etc/my.cnf
有一行:
local-infile=1
但是导入DB的时候就是不行:
最后解决方法:
导入OK!
反过来证明其配置可能有问题。
具体原因待查,估计得从show variables入手思路:
不加参数:
一样的,奇怪了!!!
Mysql手册摘抄:
你可以用--local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA LOCAL命令。
对于mysql命令行客户端,可以通过指定--local-infile[=1]选项启用LOAD DATA LOCAL,或通过--local-infile=0选项禁用。类似地,对于mysqlimport,--local or -L选项启用本地数据文件装载。在任何情况下,成功进行本地装载需要服务器启用相关选项。
如果你使用LOAD DATA LOCAL Perl脚本或其它读选项文件中的[client]组的程序,你可以在组内添加local-infile=1选项。但是,为了便面不理解local-infile的程序产生问题,则规定使用loose- prefix:
·[client]
·loose-local-infile=1
·如果LOAD DATA LOCAL INFILE在服务器或客户端被禁用,试图执行该语句的客户端将收到下面的错误消息:
ERROR 1148: The used command is not allowed with this MySQL version
参考来源:
http://wenku.baidu.com/view/4b93ac10f18583d0496459a0.html
mysql> select version();
+------------+
| version() |
+------------+
| 5.0.26-log |
+------------+
配置:
vi /etc/my.cnf
有一行:
local-infile=1
但是导入DB的时候就是不行:
最后解决方法:
导入OK!
反过来证明其配置可能有问题。
具体原因待查,估计得从show variables入手思路:
不加参数:
一样的,奇怪了!!!
Mysql手册摘抄:
你可以用--local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA LOCAL命令。
对于mysql命令行客户端,可以通过指定--local-infile[=1]选项启用LOAD DATA LOCAL,或通过--local-infile=0选项禁用。类似地,对于mysqlimport,--local or -L选项启用本地数据文件装载。在任何情况下,成功进行本地装载需要服务器启用相关选项。
如果你使用LOAD DATA LOCAL Perl脚本或其它读选项文件中的[client]组的程序,你可以在组内添加local-infile=1选项。但是,为了便面不理解local-infile的程序产生问题,则规定使用loose- prefix:
·[client]
·loose-local-infile=1
·如果LOAD DATA LOCAL INFILE在服务器或客户端被禁用,试图执行该语句的客户端将收到下面的错误消息:
ERROR 1148: The used command is not allowed with this MySQL version
参考来源:
http://wenku.baidu.com/view/4b93ac10f18583d0496459a0.html
平凡的世界 11:42:34
请教一个正则的问题,如何匹配这样的字符串:(1),其中1是一位的数字,前后带小括号,用这三个字符结尾
平凡的世界 11:43:12
比如原字符串:“我是一个中国人(4)”,那这个就匹配。
平凡的世界 11:44:19
这些都不匹配:“我是一个(4)中国人”,“中国人(98)”,“我是一个中国人(4)”,“我是一个中国人(4d)”
回复如下:
单曲(67803698) 11:46:38
$pattern = '/(.*)\([0-9]\)$/';
平凡的世界 11:46:32
多谢单曲,测试一下
解释如下:
(.*): 匹配所有
[0-9]:匹配数字
\(:转意(
测试结果:
我也用editplus正则匹配了下,是Ok的。
\(\d\)$
回忆未来(372647693) 15:18:01
这: (.*) 怎么请?加了括号是什么意思。
我姓->苏(14044522) 15:18:25
任意字符的意思!
回忆未来(372647693) 15:18:54
.*:任意字符的意思
那括号呢?
莫莫(3296320) 15:18:54
任意
莫莫(3296320) 15:19:06
括号可加可不加
春江花月夜(6010707) 15:19:45
加括号可以用$1-9的方式捕获结果
.*\(\d\)$ 也成
春江花月夜(6010707) 15:20:16
如果只是验证字符串的格式,前面的(.*)匹配是多余的
也成,但是我用ediplus的正则发现不行,于是问了下,膘哥说:
editplus 3.2开始就有这个TR1设置:增加「使用 TR1 正则表达式」选项(「首选项」->「常规」)。TR1 regular expression才能\d!
TR1 正则表达式:简单的说,C++ TR1 regular expression library就是C++的正则表达式拓展。而按照帮助文档,该选项提供的正则表达式是ECMAScript(JavaScript)兼容的,比原来的正则表达式功能强大很多。
请教一个正则的问题,如何匹配这样的字符串:(1),其中1是一位的数字,前后带小括号,用这三个字符结尾
平凡的世界
比如原字符串:“我是一个中国人(4)”,那这个就匹配。
平凡的世界
这些都不匹配:“我是一个(4)中国人”,“中国人(98)”,“我是一个中国人(4)”,“我是一个中国人(4d)”
回复如下:
单曲(67803698) 11:46:38
$pattern = '/(.*)\([0-9]\)$/';
平凡的世界
多谢单曲,测试一下
解释如下:
(.*): 匹配所有
[0-9]:匹配数字
\(:转意(
测试结果:
我也用editplus正则匹配了下,是Ok的。
\(\d\)$
回忆未来(372647693) 15:18:01
这: (.*) 怎么请?加了括号是什么意思。
我姓->苏(14044522) 15:18:25
任意字符的意思!
回忆未来(372647693) 15:18:54
.*:任意字符的意思
那括号呢?
莫莫(3296320) 15:18:54
任意
莫莫(3296320) 15:19:06
括号可加可不加
春江花月夜(6010707) 15:19:45
加括号可以用$1-9的方式捕获结果
.*\(\d\)$ 也成
春江花月夜(6010707) 15:20:16
如果只是验证字符串的格式,前面的(.*)匹配是多余的
也成,但是我用ediplus的正则发现不行,于是问了下,膘哥说:
editplus 3.2开始就有这个TR1设置:增加「使用 TR1 正则表达式」选项(「首选项」->「常规」)。TR1 regular expression才能\d!
TR1 正则表达式:简单的说,C++ TR1 regular expression library就是C++的正则表达式拓展。而按照帮助文档,该选项提供的正则表达式是ECMAScript(JavaScript)兼容的,比原来的正则表达式功能强大很多。
昨天,和一毕业两年的几个小师弟在深圳崇尚百货旁一海鲜店吃饭,主要是交流下心得,我是半路出家,师弟是依旧在电子这个圈的,谈到了他们行业做无线的,无线由800-900赫兹到2.6G赫兹的转变,还有5.XG赫兹,之不久美国911那天,美国的频段是800-900HZ,出现了严重的窜频现像,乱成一团,无线通讯一团糟糕,后面就出现两个大的变化:1.800-900HZ用的人太多,转向2.6GHZ 2.信号的传递不能用模拟,而是转为数字通过载波传输后再反解。这两条就大大的减少了干扰和不容易窜频。
其实往往我们打手机也会出现接电话的对方不是我们要找的人,这是有概率出现的,那是因为我们的手机频段也是在:800-900HZ范围内。再就是蓝牙技术的协议收费,导致后面的公司都自己做协议了,想到互联网的TCP IP都是免费的,没想到电子行业无线传输还是不那么开放。
最后,就是中国的电子市场不像我们QQ或者其他互联网公司那样什么都可以自己做,很多电子小公司都没有研发实力,有分层的设计,买其他公司的模块,然后放到自己的产品中去。估计是电子高频段的研发费用比较高吧,技术要求也高,和师弟调侃当年做一无线收发的震荡电路频率太高,学校实验室的示波器品质不是太好,频率高了点就歇菜了,测试不出来,哈哈,这就是技术呀。
总结:电子市场不像互联网这样的一家什么都去做,而是很零散,其实我想像诺基亚这样的,爱立信等还是能吃下所有技术,但市场很大,它会不会去通吃,我想可能一是利润少,不感兴趣。二是:这个市场可能比互联网市场更大,需求更多样化的缘故吧。EOF
其实往往我们打手机也会出现接电话的对方不是我们要找的人,这是有概率出现的,那是因为我们的手机频段也是在:800-900HZ范围内。再就是蓝牙技术的协议收费,导致后面的公司都自己做协议了,想到互联网的TCP IP都是免费的,没想到电子行业无线传输还是不那么开放。
最后,就是中国的电子市场不像我们QQ或者其他互联网公司那样什么都可以自己做,很多电子小公司都没有研发实力,有分层的设计,买其他公司的模块,然后放到自己的产品中去。估计是电子高频段的研发费用比较高吧,技术要求也高,和师弟调侃当年做一无线收发的震荡电路频率太高,学校实验室的示波器品质不是太好,频率高了点就歇菜了,测试不出来,哈哈,这就是技术呀。
总结:电子市场不像互联网这样的一家什么都去做,而是很零散,其实我想像诺基亚这样的,爱立信等还是能吃下所有技术,但市场很大,它会不会去通吃,我想可能一是利润少,不感兴趣。二是:这个市场可能比互联网市场更大,需求更多样化的缘故吧。EOF
CentOS6.0,我是这样安装的,如下:
使用方法:
中国国家授时中央的IP地址是:210.72.145.44,得这样:
VPS时间老是走不准,只好搞这个来同步一下:
Centos:
yum install -y ntp
客户端设置:
1、Linux服务器可通过 ntpdate 命令与时间服务器同步(如果没有安装ntp软件,CentOS可以通过“yum install ntp”命令安装):
/usr/sbin/ntpdate ntp.api.bz
如果想定时执行ntpdate进行时间同步,可以通过crontab来进行:
crontab -e
输入以下内容,每小时的第19分钟做一次时间同步:
19 * * * * /usr/sbin/ntpdate ntp.api.bz
#date -s 2004/10/16
将系统时间设定成下午1点12分0秒的命令如下。
#date -s 13:12:00
---- 注意,这里说的是系统时间,是linux由操作系统维护的。
---- 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性, Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
---- #clock -w
---- 这个命令强制把系统时间写入CMOS。
你也可以通过源码安装,参考:
http://it.chinawin.net/os/article-12702.html
使用方法:
中国国家授时中央的IP地址是:210.72.145.44,得这样:
VPS时间老是走不准,只好搞这个来同步一下:
Centos:
yum install -y ntp
客户端设置:
1、Linux服务器可通过 ntpdate 命令与时间服务器同步(如果没有安装ntp软件,CentOS可以通过“yum install ntp”命令安装):
/usr/sbin/ntpdate ntp.api.bz
如果想定时执行ntpdate进行时间同步,可以通过crontab来进行:
crontab -e
输入以下内容,每小时的第19分钟做一次时间同步:
19 * * * * /usr/sbin/ntpdate ntp.api.bz
#date -s 2004/10/16
将系统时间设定成下午1点12分0秒的命令如下。
#date -s 13:12:00
---- 注意,这里说的是系统时间,是linux由操作系统维护的。
---- 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性, Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
---- #clock -w
---- 这个命令强制把系统时间写入CMOS。
你也可以通过源码安装,参考:
http://it.chinawin.net/os/article-12702.html
发现Discuz 验证用户是否在线的机制 非常有趣, 这里到时难住了我一个之前没怎么接触过Web系统的,唉,搞了半天才发现,Discuz!X 的判断是否在线的机制,不是跟我们普通想象的在数据库中又一个标志位来标识是否在线。
Discuz在数据库中是没有这个标志位的,只有在pre_common_onlinetime和pre_forum_onlinelist中提到在线相关的,不过pre_common_onlinetime是记录每个用户(UID)在线的总时间的,(据说:这个记录在线总时间的方法就是,每十分钟记录一次在线时间,然后累加在这张表中,不过这个任务我一直没有发现,这个好像是NT版本的 不知道PHP是不是也这样)
还有一张表 pre_forum_onlinelist 用来记录当前在线成员列表的,不过这个列表不是当前在线的成员,而是title
Discuz 判断登录是通过Cookie来判断的,我做过实验,如果我把一位已经登录的用户的SID从session表中删除,然后在刷新刚才已经登录的页面,此时这个用户还是在线的状态,从这里可以判断出,不是通过session表中的数据来判断的,当然我也没发现其它的标志是否在线的表。
说明:Discuz 的Cookie 和 server的session 是分开的,相对独立的。
由于第一次接触Web系统,所以还有很多需要学习的!
接下来要努力研究一下Discuz 的Cookie,她到底是什么样的机制!
希望分析过Discuz 的朋友 多多探讨!
参考:
http://www.mzlhappy.com/72.html
http://www.discuz.net/thread-2135200-1-1.html
请问体哥:如何设置延长用户在线时间?以前我的老论坛可以设置用户在线最高时间。比如:180分钟,用户只要没有退出,自行离开论坛后还是显示他在线!!DZ7有办法设置或者修改代码吗?谢谢!
在线时间设定的太短,稍微间隔下就会自动下线,感觉不是很好,能否改进呢?
后台 -- 全局 -- 优化设置 -- 服务器优化,在线时间保持时间:
Discuz在数据库中是没有这个标志位的,只有在pre_common_onlinetime和pre_forum_onlinelist中提到在线相关的,不过pre_common_onlinetime是记录每个用户(UID)在线的总时间的,(据说:这个记录在线总时间的方法就是,每十分钟记录一次在线时间,然后累加在这张表中,不过这个任务我一直没有发现,这个好像是NT版本的 不知道PHP是不是也这样)
还有一张表 pre_forum_onlinelist 用来记录当前在线成员列表的,不过这个列表不是当前在线的成员,而是title
Discuz 判断登录是通过Cookie来判断的,我做过实验,如果我把一位已经登录的用户的SID从session表中删除,然后在刷新刚才已经登录的页面,此时这个用户还是在线的状态,从这里可以判断出,不是通过session表中的数据来判断的,当然我也没发现其它的标志是否在线的表。
说明:Discuz 的Cookie 和 server的session 是分开的,相对独立的。
由于第一次接触Web系统,所以还有很多需要学习的!
接下来要努力研究一下Discuz 的Cookie,她到底是什么样的机制!
希望分析过Discuz 的朋友 多多探讨!
参考:
http://www.mzlhappy.com/72.html
http://www.discuz.net/thread-2135200-1-1.html
请问体哥:如何设置延长用户在线时间?以前我的老论坛可以设置用户在线最高时间。比如:180分钟,用户只要没有退出,自行离开论坛后还是显示他在线!!DZ7有办法设置或者修改代码吗?谢谢!
在线时间设定的太短,稍微间隔下就会自动下线,感觉不是很好,能否改进呢?
后台 -- 全局 -- 优化设置 -- 服务器优化,在线时间保持时间:
错误编号:145
问题分析:
这种情况是不能打开 %s.MYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法:
1、修复数据表
可以使用下面的三种方式修复数据表:(第二种方法仅适合独立主机用户)
1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL安装目录的 bin 目录下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:
myisamchk -r 数据文件目录/数据表名.MYI;
CODE: [COPY]
myisamchk -r 数据文件目录/数据表名.MYI;
2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上三种修复方式在执行前一定要备份数据库。
2、修改文件的属组(仅适合独立主机用户)
1)复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。
问题分析:
这种情况是不能打开 %s.MYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法:
1、修复数据表
可以使用下面的三种方式修复数据表:(第二种方法仅适合独立主机用户)
1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL安装目录的 bin 目录下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:
myisamchk -r 数据文件目录/数据表名.MYI;
CODE: [COPY]
myisamchk -r 数据文件目录/数据表名.MYI;
2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上三种修复方式在执行前一定要备份数据库。
2、修改文件的属组(仅适合独立主机用户)
1)复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。
将TCP/IP、UDP网络协议映射成本机的虚拟COM口,用于串口服务器、GPRS/CDMA、EIO联网等产品的虚拟串口映射。也可以用于调试各类串口软件,内建虚拟串口互联插件,可以互联若干对虚拟串口,内部集成Telnet管理器。
收费版支持Windows98/2000/XP/2003/VISTA/Win7。免费版只支持WindowsXP操作系统。
适用于我公司所有具备以太网接口的设备。
V2.82重要更新:
1.Server模式下,一个COM口可支持无限个Client连接,但免费版只允许前3个TCP/IP连接与COM口双向数据通讯,其他连接为单向通讯。VSPM3收费版没有此限制。
2.Client模式下,支持动态域名解析,远程主机地址可以直接指定域名,比如www.google.com。


DownLoad:
http://www.powerip.net/download/vspm.rar
参考:
http://article.ednchina.com/Other/20090721103435.htm
收费版支持Windows98/2000/XP/2003/VISTA/Win7。免费版只支持WindowsXP操作系统。
适用于我公司所有具备以太网接口的设备。
V2.82重要更新:
1.Server模式下,一个COM口可支持无限个Client连接,但免费版只允许前3个TCP/IP连接与COM口双向数据通讯,其他连接为单向通讯。VSPM3收费版没有此限制。
2.Client模式下,支持动态域名解析,远程主机地址可以直接指定域名,比如www.google.com。
DownLoad:
http://www.powerip.net/download/vspm.rar
参考:
http://article.ednchina.com/Other/20090721103435.htm
我在做nginx相关项目时发现,如果架构前端使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题,但可能因为它占用了系统过多的端口,导致后续的请求无法获取端口而造成障碍,目前看来最好的办法是让每个TIME_WAIT早点过期:
在linux上的nginx负载均衡器上可以这么配置:
#让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
#让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
※或者将以上配置直接写进/etc/sysctl文件,sysctl -p立即生效;如果后端的web集群为nginx+php5,它们的内核优化可关闭上述功能(这点跟前端的负载均衡器是不一样的);年纪大了,将以上学习心得写进博客备忘,也方便以后布署时直接粘贴。
在linux上的nginx负载均衡器上可以这么配置:
#让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
#让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
※或者将以上配置直接写进/etc/sysctl文件,sysctl -p立即生效;如果后端的web集群为nginx+php5,它们的内核优化可关闭上述功能(这点跟前端的负载均衡器是不一样的);年纪大了,将以上学习心得写进博客备忘,也方便以后布署时直接粘贴。
一个流行的观点是,30岁之前最好进一趟国际级大公司,对眼光的高度、视野的宽度、思维的深度、职业化的专业程度都有助益,然后毫不犹豫地投身或创建小公司,永远也不要回去。
开放平台模式成功的要点在于,通过自身服务和第三方应用的互利互惠,提高用户对平台网站的粘性和使用程度,进而提高获利,同时,通过利益分摊,达到平台自身和第三方应用循环刺激而产生的滚雪球式的增长。
所谓开放平台,就是首先提供一个基本的服务,然后通过开放自身的接口,使得第三方开发者得以通过运用和组装其接口以及其他第三方服务接口产生新的应用,并且使得该应用能够统一运行在这个平台之上,我们把这样的一种网络服务模式叫做开放平台。
张朝阳说,准确描述现实的书基本上出不来,所以读书误人。俺觉得还是有一些的,比如冯仑的《野蛮生长》、吴思的《潜规则》《血酬定律》、王学泰《游民文化与中国社会》等。大家能补充一下吗?还有哪些书比较清楚剖析中国社会的利益关系、力量平衡等现实?
一创业CEO,名片上头衔却是“客户总监”,问:你不是CEO吗?答:是的,整天跑客户称自己CEO,人家会想这家公司只有一个光杆司令,叫客户总监,遇到难事还可借口“我得问问CEO”...创业就是如此卑微。仔细想想:CEO如果不是客户总监,那他还干嘛呢?建议所有创业CEO将自己的头衔改成“客户总监”!
哈佛有一个著名的理论:人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。
绝大多数人习惯做语言的巨人,行动的矮子。越是智商高的人越容易陷入这个悖 论中,难以自拔。
他接着分析:“我认为一个人失业的成功取决于三商,即我们平时所讲的智商,情 商和胆商,但是一个真正的人才,他的三商重要性应该这样排列:胆商第一,情商第 二,智商第三,目前中国教育培养出来的所谓人才是很片面的,仅仅在智商上优人一 等,可是情商与胆商根本没有包含在内。
为别人打零工才得以糊口的打工朋友们不是不想改变现实生活,也有紧迫感,也 很想改变自身的“贫穷”面貌,但是总有恐惧感,因为从来没有独立把握自己命运的 经历和经验,就像一个从来没有用过电脑的人,生怕按错开关和按钮把电脑烧坏了、一 用力就把键盘敲坏了,或者一上网就会遭遇病毒一样。
来源:http://t.sina.com.cn/1771892741
开放平台模式成功的要点在于,通过自身服务和第三方应用的互利互惠,提高用户对平台网站的粘性和使用程度,进而提高获利,同时,通过利益分摊,达到平台自身和第三方应用循环刺激而产生的滚雪球式的增长。
所谓开放平台,就是首先提供一个基本的服务,然后通过开放自身的接口,使得第三方开发者得以通过运用和组装其接口以及其他第三方服务接口产生新的应用,并且使得该应用能够统一运行在这个平台之上,我们把这样的一种网络服务模式叫做开放平台。
张朝阳说,准确描述现实的书基本上出不来,所以读书误人。俺觉得还是有一些的,比如冯仑的《野蛮生长》、吴思的《潜规则》《血酬定律》、王学泰《游民文化与中国社会》等。大家能补充一下吗?还有哪些书比较清楚剖析中国社会的利益关系、力量平衡等现实?
一创业CEO,名片上头衔却是“客户总监”,问:你不是CEO吗?答:是的,整天跑客户称自己CEO,人家会想这家公司只有一个光杆司令,叫客户总监,遇到难事还可借口“我得问问CEO”...创业就是如此卑微。仔细想想:CEO如果不是客户总监,那他还干嘛呢?建议所有创业CEO将自己的头衔改成“客户总监”!
哈佛有一个著名的理论:人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。
绝大多数人习惯做语言的巨人,行动的矮子。越是智商高的人越容易陷入这个悖 论中,难以自拔。
他接着分析:“我认为一个人失业的成功取决于三商,即我们平时所讲的智商,情 商和胆商,但是一个真正的人才,他的三商重要性应该这样排列:胆商第一,情商第 二,智商第三,目前中国教育培养出来的所谓人才是很片面的,仅仅在智商上优人一 等,可是情商与胆商根本没有包含在内。
为别人打零工才得以糊口的打工朋友们不是不想改变现实生活,也有紧迫感,也 很想改变自身的“贫穷”面貌,但是总有恐惧感,因为从来没有独立把握自己命运的 经历和经验,就像一个从来没有用过电脑的人,生怕按错开关和按钮把电脑烧坏了、一 用力就把键盘敲坏了,或者一上网就会遭遇病毒一样。
来源:http://t.sina.com.cn/1771892741
Pearl Crescent Page Saver,Page Saver可以让你将网页转化为图片,包括网页上的Flash也能同时被转化。网页可以按照你的要求保存为PNG或者JPEG格式。通过使用Page Saver你可以将整个网页或者你在屏幕上看到的部分转化为图片。为了方便你截取网页,插件提供了大量的设置选项,包括默认的文件名、文件后缀名、图片的 质量(如:50%的大小或者原始大小)。
可以通过工具栏按钮截取图片,也可以通过浏览器的菜单选项截取图片,还可以通过命令行截取图片。
Page Saver的全功能版包含更多的功能:例如文件上传、扩展的命令行选项、或者将网页上指定的一部分截取为图片。如果想要获取更多信息,请访问:
http://pearlcrescent.com/products/pagesaver/pro/
扩展页面:https://addons.mozilla.org/zh-CN/firefox/addon/10367
安装:https://addons.mozilla.org/zh-CN/firefox/addons/policy/0/10367/65855?src=addondetail
可以通过工具栏按钮截取图片,也可以通过浏览器的菜单选项截取图片,还可以通过命令行截取图片。
Page Saver的全功能版包含更多的功能:例如文件上传、扩展的命令行选项、或者将网页上指定的一部分截取为图片。如果想要获取更多信息,请访问:
http://pearlcrescent.com/products/pagesaver/pro/
扩展页面:https://addons.mozilla.org/zh-CN/firefox/addon/10367
安装:https://addons.mozilla.org/zh-CN/firefox/addons/policy/0/10367/65855?src=addondetail
0-14岁人口占16.60%,比2000年人口普查下降6.29个百分点;60岁及以上人口占13.26%,比2000年人口普查上升2.93个百分点,其中65岁及以上人口占8.87%,比2000年人口普查上升1.91个百分点。---房市预测:2010年人口普查情况,老人大头即将逝去,年轻人百分点下降很快啊。
在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:
阅读全文
阅读全文
我需要在shell中设置等待时间为1-1000中的
任意毫秒数,sleep最小只到1秒,有什么好方法么?
多谢!
解决了!
居然这样也行!
sleep 0.001
或者:
usleep 100000:
具体单位大家看
man usleep
任意毫秒数,sleep最小只到1秒,有什么好方法么?
多谢!
解决了!
居然这样也行!
sleep 0.001
或者:
usleep 100000:
具体单位大家看
man usleep
腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress
返回值 var IPData = new Array("61.135.152.194","","北京市","");
新浪的接口 : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42
返回值 var remote_ip_info = {"ret":1,"start":"218.192.0.0","end":"218.192.7.255","country":"\u4e2d\u56fd","province":"\u5e7f\u4e1c","city":"\u5e7f\u5dde","district":"","isp":"\u6559\u80b2\u7f51","type":"\u5b66\u6821","desc":"\u5e7f\u5dde\u5927\u5b66\u7eba\u7ec7\u670d\u88c5\u5b66\u9662"};
Example:
C:\Documents and Settings\jackxiang>curl "http://fw.qq.com/ipaddress"
var IPData = new Array("219.133.62.73","","广东省","深圳市");
Sina的通过Curl好像不行,需要通过浏览器访问才行。
返回值 var IPData = new Array("61.135.152.194","","北京市","");
新浪的接口 : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42
返回值 var remote_ip_info = {"ret":1,"start":"218.192.0.0","end":"218.192.7.255","country":"\u4e2d\u56fd","province":"\u5e7f\u4e1c","city":"\u5e7f\u5dde","district":"","isp":"\u6559\u80b2\u7f51","type":"\u5b66\u6821","desc":"\u5e7f\u5dde\u5927\u5b66\u7eba\u7ec7\u670d\u88c5\u5b66\u9662"};
Example:
C:\Documents and Settings\jackxiang>curl "http://fw.qq.com/ipaddress"
var IPData = new Array("219.133.62.73","","广东省","深圳市");
Sina的通过Curl好像不行,需要通过浏览器访问才行。
上图我圈起来的部分,就是古体的放浪形骸,在这里形容这对男女很放浪,导演真有文化,敬仰之情犹如滔滔江水,连绵不绝。
后面是王羲之行书《兰亭集序》:
夫人之相与,俯仰一世。或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。虽趣舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,不知老之将至。
翻译为:
人们彼此相处,一生很快就度过。有的人喜欢讲自己的志趣抱负,在室内(跟朋友)面对面地交谈;有的人就着自己所爱好的事物寄托情怀,不受任何约束,放纵地生活。尽管人们的爱好千差万别,或好静,或好动,也不相同,(可是又都有这样的体验)当他们对所接触的事物感到高兴时,自己所要的东西暂时得到了,快乐而自足,竟不觉得衰老即将到来。
阅读全文
http_build_query — 生成 URL-encode 之后的请求字符串
string http_build_query ( array $formdata [, string $numeric_prefix ] )
使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>
<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data);
/* 输出:
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/
echo http_build_query($data, 'myvar_');
/* 输出:
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>
<?php
$data = array('user'=>array('name'=>'Bob Smith',
'age'=>47,
'sex'=>'M',
'dob'=>'5/12/1956'),
'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
'children'=>array('bobby'=>array('age'=>12,
'sex'=>'M'),
'sally'=>array('age'=>8,
'sex'=>'F')),
'CEO');
echo http_build_query($data, 'flags_');
?>
本例将输出(为可读性进行了折行):
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO
<?php
class myClass {
var $foo;
var $baz;
function myClass()
{
$this->foo = 'bar';
$this->baz = 'boom';
}
}
$data = new myClass();
echo http_build_query($data); // foo=bar&baz=boom
?>
http_build_str:
这个函数有个要求:(PECL pecl_http >= 0.23.0)
string http_build_str ( array $query [, string $prefix [, string $arg_separator = ini_get("arg_separator.output") ]] )
Opponent to parse_str().
string http_build_query ( array $formdata [, string $numeric_prefix ] )
使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>
<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data);
/* 输出:
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/
echo http_build_query($data, 'myvar_');
/* 输出:
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>
<?php
$data = array('user'=>array('name'=>'Bob Smith',
'age'=>47,
'sex'=>'M',
'dob'=>'5/12/1956'),
'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
'children'=>array('bobby'=>array('age'=>12,
'sex'=>'M'),
'sally'=>array('age'=>8,
'sex'=>'F')),
'CEO');
echo http_build_query($data, 'flags_');
?>
本例将输出(为可读性进行了折行):
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO
<?php
class myClass {
var $foo;
var $baz;
function myClass()
{
$this->foo = 'bar';
$this->baz = 'boom';
}
}
$data = new myClass();
echo http_build_query($data); // foo=bar&baz=boom
?>
http_build_str:
这个函数有个要求:(PECL pecl_http >= 0.23.0)
string http_build_str ( array $query [, string $prefix [, string $arg_separator = ini_get("arg_separator.output") ]] )
Opponent to parse_str().
一个男人在外工作20年,终于要回家了,
老板问他:你是要20年的工资还是要3句忠告?男人说我明天上路,明早给您答案好吗?老板说可以。当晚男人未眠…
早晨,他对老板说:我要3个忠告。于是老板给他3句话。
一、不要试图寻找不可能的捷径,世上没有便宜的事,只有脚踏实地才是最好的方法…无论做何事。
二、不要对明知不是好事的事过分好奇,有可能你会因此而丧命。
三、不要在冲动时做任何决定,否则这个决定就有可能成为你一辈子的遗憾。说完老板给男人一些钱和三个面包,并叮嘱:最大的面包在到家后才能吃。
男人上路了…他走了好几天…把第一个面包吃了一半了,没过多久遇到一个路口,他打听:请问到**走哪条路近?路人甲:走小路吧,近。路人乙:走大路吧,安全。他迫不急待要与妻子见面,于是走了小路。走了没多久就听到有路人说附近闹山贼,于是他想起了老板的第一个忠告:不要试图寻找捷径。于是他回头去
走那条大路。
又走了几天,第二个面包也吃了一部分了…他找到一家极便宜的客栈投宿。半夜听见有女子哭声,他睡不下。于是决定出门看看。这时他想到了第二个忠告:不要对明知不是好事的事过分好奇。于是他又睡下了。第二日起程时,店家惊道:你还活着?他不解,遂问原由。店家说他有个疯女儿,发病时用哭声引人出来再将其杀害,昨晚投宿的客人只有你一个活着。男人长叹:啊…
又走了几天,当第二个面包吃完时他已离家不远了。他更加激动了。天刚黑下来没多久,他就走到了自己的村子。到家时他刚准备敲门,却听到屋里有男人的声音。他气极了,拿起一把砍柴刀就准备冲进屋子将那男的杀掉。但这时他想到了第三个忠告:不要在冲动时做任何决定,可能这个决定会让你后悔一辈子。于是他冷静下来,在屋外坐了一夜。第二天早上他很早就敲开了门,妻子见他回来十分高兴。但他却很冷漠:那个男人是谁?他妻子笑曰:那是我们的儿啊…你走后没多久我就…这时他发现这个年轻小伙竟和自己长得相似极了。父子初次见面,相拥而泣…一阵关切过后男人拿出第三个面包准备和妻、子一齐分享…切开之后却发现20年的
走那条大路。
又走了几天,第二个面包也吃了一部分了…他找到一家极便宜的客栈投宿。半夜听见有女子哭声,他睡不下。于是决定出门看看。这时他想到了第二个忠告:不要对明知不是好事的事过分好奇。于是他又睡下了。第二日起程时,店家惊道:你还活着?他不解,遂问原由。店家说他有个疯女儿,发病时用哭声引人出来再将其杀害,昨晚投宿的客人只有你一个活着。男人长叹:啊…
又走了几天,当第二个面包吃完时他已离家不远了。他更加激动了。天刚黑下来没多久,他就走到了自己的村子。到家时他刚准备敲门,却听到屋里有男人的声音。他气极了,拿起一把砍柴刀就准备冲进屋子将那男的杀掉。但这时他想到了第三个忠告:不要在冲动时做任何决定,可能这个决定会让你后悔一辈子。于是他冷静下来,在屋外坐了一夜。第二天早上他很早就敲开了门,妻子见他回来十分高兴。但他却很冷漠:那个男人是谁?他妻子笑曰:那是我们的儿啊…你走后没多久我就…这时他发现这个年轻小伙竟和自己长得相似极了。父子初次见面,相拥而泣…一阵关切过后男人拿出第三个面包准备和妻、子一齐分享…切开之后却发现20年的工資全在裡面。所以我們做任何事都要考慮清楚否則到最後後悔的是自己!
------
阅读全文
老板问他:你是要20年的工资还是要3句忠告?男人说我明天上路,明早给您答案好吗?老板说可以。当晚男人未眠…
早晨,他对老板说:我要3个忠告。于是老板给他3句话。
一、不要试图寻找不可能的捷径,世上没有便宜的事,只有脚踏实地才是最好的方法…无论做何事。
二、不要对明知不是好事的事过分好奇,有可能你会因此而丧命。
三、不要在冲动时做任何决定,否则这个决定就有可能成为你一辈子的遗憾。说完老板给男人一些钱和三个面包,并叮嘱:最大的面包在到家后才能吃。
男人上路了…他走了好几天…把第一个面包吃了一半了,没过多久遇到一个路口,他打听:请问到**走哪条路近?路人甲:走小路吧,近。路人乙:走大路吧,安全。他迫不急待要与妻子见面,于是走了小路。走了没多久就听到有路人说附近闹山贼,于是他想起了老板的第一个忠告:不要试图寻找捷径。于是他回头去
走那条大路。
又走了几天,第二个面包也吃了一部分了…他找到一家极便宜的客栈投宿。半夜听见有女子哭声,他睡不下。于是决定出门看看。这时他想到了第二个忠告:不要对明知不是好事的事过分好奇。于是他又睡下了。第二日起程时,店家惊道:你还活着?他不解,遂问原由。店家说他有个疯女儿,发病时用哭声引人出来再将其杀害,昨晚投宿的客人只有你一个活着。男人长叹:啊…
又走了几天,当第二个面包吃完时他已离家不远了。他更加激动了。天刚黑下来没多久,他就走到了自己的村子。到家时他刚准备敲门,却听到屋里有男人的声音。他气极了,拿起一把砍柴刀就准备冲进屋子将那男的杀掉。但这时他想到了第三个忠告:不要在冲动时做任何决定,可能这个决定会让你后悔一辈子。于是他冷静下来,在屋外坐了一夜。第二天早上他很早就敲开了门,妻子见他回来十分高兴。但他却很冷漠:那个男人是谁?他妻子笑曰:那是我们的儿啊…你走后没多久我就…这时他发现这个年轻小伙竟和自己长得相似极了。父子初次见面,相拥而泣…一阵关切过后男人拿出第三个面包准备和妻、子一齐分享…切开之后却发现20年的
走那条大路。
又走了几天,第二个面包也吃了一部分了…他找到一家极便宜的客栈投宿。半夜听见有女子哭声,他睡不下。于是决定出门看看。这时他想到了第二个忠告:不要对明知不是好事的事过分好奇。于是他又睡下了。第二日起程时,店家惊道:你还活着?他不解,遂问原由。店家说他有个疯女儿,发病时用哭声引人出来再将其杀害,昨晚投宿的客人只有你一个活着。男人长叹:啊…
又走了几天,当第二个面包吃完时他已离家不远了。他更加激动了。天刚黑下来没多久,他就走到了自己的村子。到家时他刚准备敲门,却听到屋里有男人的声音。他气极了,拿起一把砍柴刀就准备冲进屋子将那男的杀掉。但这时他想到了第三个忠告:不要在冲动时做任何决定,可能这个决定会让你后悔一辈子。于是他冷静下来,在屋外坐了一夜。第二天早上他很早就敲开了门,妻子见他回来十分高兴。但他却很冷漠:那个男人是谁?他妻子笑曰:那是我们的儿啊…你走后没多久我就…这时他发现这个年轻小伙竟和自己长得相似极了。父子初次见面,相拥而泣…一阵关切过后男人拿出第三个面包准备和妻、子一齐分享…切开之后却发现20年的工資全在裡面。所以我們做任何事都要考慮清楚否則到最後後悔的是自己!
------
阅读全文





