http://hi.baidu.com/nnffnn/blog/item/2eb8a38ff831a1eaf01f36b4.html
img.src = "http://ptlogin2.qq.com/getimage?aid=" + aid + "&" + Math.random();



$.getJSON('/con/info/act/getawardleft',{type:$.getURLParam('type'),clientTime:Date()},function(data){
                    $('#awardleft').text(data.awardleft);




$.get('/con/info/act/getmyscore',{clientTime:Date()},function(data){
                    $('#myscoreleft').text(data);
比较strlen和mb_strlen

当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)

复制代码 代码如下:


$str=‘中文a字1符‘;

echo strlen($str);

echo ‘
‘;

echo mb_strlen($str,‘UTF8‘);

//输出结果

//14

//6

?>

结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14

在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6

关于中英文混排串的占位符计算:

利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1),计算的方法是:如果一个混排字符串有a个中文,b个英文,占位是:

复制代码 代码如下:


$str=‘中文a字1符‘;

//计算如下

echo (strlen($str) + mb_strlen($str,‘UTF8‘)) / 2;

echo

//输出结果

//10

?>

例如 “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,则可以计算出“中文a字1符”的占位是10.

附网站的一篇文章:

还是有关中文的问题。PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在 UTF-8编码下,一个汉字占3个字节)。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用 mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。
不知道是应该恭喜还是担忧,中国互联网产业已经步入一个疯狂时代,一个非常危险的二元经济时代。当一个个戴着红袖章的“城管”,手拿红头文件来整顿市场,并且成为这个市场一员的时候,这个市场基本已经疯狂,也基本已经步入灭亡。阅读全文
使用桥接模式的IP和网关并不是照搬就成,一是注意IP别冲突了,二是注意DNS还有网关别搞错了。 三是)如果有INODE啥的,可能还得设置一下才能让虚拟机上得了网。

对于IP设置静态、DNS和网关、子网掩码这块的一个设置,得从windows下的ipconfig /all进行查看并配置上IP设置静态、DNS和网关、子网掩码:

   IPv4 地址 . . . . . . . . . . . . : 10.10.0.94(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 10.10.0.2
   DNS 服务器  . . . . . . . . . . . : 123.125.81.6
C:\Users\Administrator>ipconfig /all
[codes=php]
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Wireless-N 7265
   物理地址. . . . . . . . . . . . . : 48-45-20-CF-65-98
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::a8aa:4679:3642:9444%18(首选)
   IPv4 地址 . . . . . . . . . . . . : 10.10.0.94(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2020年6月3日星期三 下午 8:39:19
   租约过期的时间  . . . . . . . . . : 2021年6月3日星期四 下午 8:39:19
   默认网关. . . . . . . . . . . . . : 10.10.0.2
   DHCP 服务器 . . . . . . . . . . . : 10.10.0.2
   DHCPv6 IAID . . . . . . . . . . . : 172508448
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-24-36-C3-52-C8-5B-76-00-B0-AD
   DNS 服务器  . . . . . . . . . . . : 123.125.81.6
                                       202.106.196.115
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用
[/codes]


VMware下Linux与真实主机共享上网的方法实现环境:

真实机系统为windows xp或者2003,使用adsl拨号上网,虚拟机版本为V5.5.2 Build 29772,虚拟机安装linux,有一块网卡,使用桥接模式。



1、在windows下,启用ICS。

选择adsl上网拨号后的连接,属性?高级?Internet连接共享?勾选“允许其他网络用户通过此计算机的internet连接共享”,家庭网络连接选“本地连接”。

2、在linux下,配置静态IP。

点主菜单?系统设置?网络,弹出“网络配置”,双击eth0,勾选“静态设置的ip地址”,

地址:192.168.0.21 (除192.168.0.1和255外,随便填)

子网掩码: 255.255.255.0

网关:192.168.0.1

确定

DNS项,主DNS填:192.168.0.1

都填完,记得保存。

3、编辑主机地址(实验时这步可以不用)

vi /etc/hosts

把127.0.0.1替换成前面设置的ip地址192.168.0.88

4、重起服务

service network restart 或者重启linux。

5、现在ping 一下 google.cn 看看,如果通就ok了,没有通的话,自己再检查上面的步骤是否出错。
今天在笔记本上试图虚拟一个64位LINUX系统,VMWARE报错。


i Z _ b S ^0c Q0

尝试虚拟的操作系统是Oracle的Enterprise Linux 4 for X86-64,因此在系统选项中选择了Other Linux 64bit,尝试系统后系统报错:

This CPU is VT-capable, but VT is not enabled (check your BIOS settings).
6M W k%~7f V _"s0You have configured this virtual machine as a 64-bit guest operating system. However, this host's CPU is not capable of running 64-bit virtual machines or this virtual machine has 64-bit support disabled.
Z H*C o L z)X:H ? i Y0For more detailed information, see http://www.vmware.com/info?id=152

点击确定,屏幕显示错误信息为:

Your CPU does not support long mode. Use a 32bit distribution.

对于这种情况,需要设置BIOS将Inter Virtualization Technology设置为ENABLE,然后重启系统,就可以了。

如果BIOS设置了没有类似的设置,那么系统就无法虚拟64位的系统了。
以下的方式能够帮助PHP应用程序改善其扩展性。

1)目标代码缓存

每一次服务器的请求都需要PHP引擎编译并执目标代码。如果这一过程被缓存的话用户会获得更快的相应脚本。

在Internet上有许多目标代码的缓存解决方案(免费或者是商业产品):

A) Ioncube:http://www.ioncube.com

B) Zend Encoder:http://www.zend.com/products/zend_safeguard

C) Turckl MMCache: http://freshmeat.net/projects/turck-mmcache/

2)模板引擎

模板引擎提供了缓存的另一种方式。内容缓存。 模板引擎适合于您的页面有比较多的静态数据的情况。缓存系统还提供了代码与html的分离,使得将来的维护与更新更加容易。大多数的PHP模板引擎都是免费的。

A) Smarty Templates: http://smarty.php.net/

B) Pear Templates: http://pear.php.net/package/html_template_it/redirected

C) PHP savant: http://phpsavant.com/yawiki/

3)分布式对象缓存系统

这一类型最广泛使用的系统是memcached(http://www.danga.com/memcached/)

这一类型的系统将大量的数据库数据缓存在一个内存池中。

他们网站有趣的一段摘录:

“Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.”

5)输出压缩

今天几乎所有的浏览器都支持一种叫做gzip压缩的东西。Gzip能够减少你的整体输出到80%,但代价是:处理器的资源消耗会增加10%。使用这一压缩类型的好处是不仅能够减少你的带宽,而且页面也会更快速的加载。

在PHP启用(在php.ini增加以下几行):

zlib.output_compression = On
zlib.output_compression_level = (level) (where level is 1-9. Youy may want to try different values to see what is best for your system).

如果你使用的是Apache,你可以启用mod_gzip模块.

6)其它有用的东西

当使用数据库时,只取出你实际需要的数据。这听起来很理所当然,但是我碰到项目的程序员经常使用(select * from mytable)而实际上他们可以使用(select fieldIneed from mytable)。

如果可能的话为数据库表建立索引

了解更多可以看这里:

An interesting blog article I found mentions many interesting tricks that can be used: http://ilia.ws/archives/12-PHP-Optimization-Tricks.html

an article on zend.com about measuring performance: http://www.zend.com/zend/trick/trick-optimizing-php.php

原文地址:http://www.whenpenguinsattack.com/2006/08/14/using-php-in-large-websites-redone/?artid=134
近半年在公司的pc上,用sz下载,rz上传老是文件会出问题。刚开始的时候,我一度怀疑是linux虚拟机,或者网络的问题,导致传输的过程中丢包,也没有仔细去探究。

最近发现,在任何服务器上做同样的操作都存在同样的问题,会严重的影响我的工作。为此,决定把真凶就揪出来。在下载文件前用md5sum计算它的md5值,然后用sz下载到本地的pc上,用windows下的md5sum再计算一次,发现下载到本地之后的md5值跟在服务器上是一样的。最后使用rz上传到服务器上再算一次,发现变化发生在我用rz上传到服务器之时。

缩小怀疑对象了。rz怎么会出问题。先看看SecureCRT中Session Option的设置,Xmodem/Zmodem这一栏中似乎也没有关于校验的设置。pqf说,会不会是上传的时候没有用binary的方式,他自己用rz,sz通常都会加上-b,-e的参数。
-b binary 用binary的方式上传下载,不解释字符为ascii
-e 强制escape 所有控制字符,比如Ctrl+x,DEL等

于是我老老实实的用rz -be的参数来上传文件,发现一切照旧。我开始怀疑是不是rz的bug,于是google之。Google来Google去都没有结果,更换搜索关键字都没有,比如"rz file changed“,"rz transfer size"。难道Google也有不灵光的时候?

好。先放一放吧。在今天下午,我又用rz上传一张图片,但是图片又因为发生了改变无法访问。正在垂头丧气的时候,突然发现问题所在!
在输入rz后,上传文件的对话框,我不知道什么时候勾选了Upload files as ASCII。这个该死的选项,去掉后再测试,一切都正常了。

关于rz,sz
rz,sz是利用[XYZ]modem协议来实现上传下载文件的工具。本身来说Zmodem协议算是一个古老的协议了,似乎用rz,sz也不能续传文件。但是它的好处在于方便,不需要server支持。只要服务器支持rz,sz(不支持的话,linux可以装lrzsz这个rpm包),客户端软件支持(SecureCRT这类的),就可以方便的两个命令实现本地pc和服务器之间的文件上传下载
背景:最近,打下rpm包,想了解一下包依赖,特别是这个libiconv这个在linux里没有yum下的rpm包,于是自己打了一个编译过去了,但是如果在其它机器部署是不是还得装下自己打的rpm包呢,于是查了一下,发现php里面有一个libiconv.so.2指向打rpm编译时自己打的这个libiconv的rpm包,所以,还得安装这个自制的rpm包,也就是说需要打的php的rpm包依赖这个自己打的libiconv的rpm包,要在依赖里写明:Requires: libiconv ,不光是BuildRequires: libiconv。
[root@localhost sbin]# ldd php-fpm |grep libicon
        libiconv.so.2 => /usr/local/libiconv/lib64/libiconv.so.2 (0x00007f0a545db000)

同样,如果自己建立yum仓库时,在安装memcache包时也需要安装自己打的这个libevent的rpm包(指定打包安装的libevent动态库位置后,后面打包的memcache也是按这个指向编译并打包即可):
[root@iZ25dcp92ckZ multepoolserver]# ldd /usr/local/memcached/bin/memcached
        linux-vdso.so.1 =>  (0x00007ffc4d5b5000)
        libevent-2.0.so.5 => /usr/local/lib/libevent-2.0.so.5 (0x00007fac1db70000)
——————————————————————————————————————————
这块还好当时问过张宴兄弟,突然想到打包,他提到的这个ldd很有帮助:
向东 说:
centos出5.4了,那个nginx也写到5.4吧?呵呵
张宴 说:
有时间我更新一下,呵呵。
向东 说:
我想请教一个关于rpm包的问题,我安装某个东西的时候会说依赖某个*so,你一般是怎么反查到这个*.so属于某个rpm包?
向东 说:
在不同系统版本好像包也是有区分的
向东 说:

张宴 说:
只能根据rpm包的某个可执行文件查询其依赖的.so,ldd命令可以查询:
张宴 说:
# ldd /usr/local/webserver/nginx/sbin/nginx
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003e78200000)
        libpcre.so.0 => /lib64/libpcre.so.0 (0x0000003e76a00000)
        libssl.so.6 => /lib64/libssl.so.6 (0x0000003610c00000)
        libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e75200000)
向东 说:
喔,linux在装某个rpm的时候依赖很多包,比如我装那个rz的时候就说我没有装什么什么so,你是如何解决?
张宴 说:
装rz,yum install lrzsz就OK了。
向东 说:
喔,我搞的是虚拟机啊,,我就直接挂载Linux的iso到虚拟机里面,想挨个安装rpm包依赖,
没有利用到linux的网络优势。
向东 说:
看来还得自己搞台服务器玩玩
张宴 说:
rpm安装有先后顺序的。
张宴 说:
rpm -i *.rpm
向东 说:
rpm -ihv rzsz-0.12.20-853.2*.rpm他会提示你缺少某个动态链接库,但是这个动态链接库的rpm包他没有说啊
向东 说:

向东 说:
当然用yum联网他会给一切安排好

向东 说:
我的网站给个链接:www.jackxiang.com
向东 说:
大学的时候我就看到你叫回忆未来,我说说我为何叫回忆未来:如果我放弃了我的员工,我永远不会看到未来的希望,如果我放弃了我的客户,我则失去了回忆的必要,信念和希望必须专注与此,我就是回忆未来-向东  缘分啊。
向东 说:

于是搞了个虚拟机NAT方式共享上网, yum install lrzsz:


[root@localhost ~]# yum install lrzsz
Loaded plugins: fastestmirror
Determining fastest mirrors
* addons: mirrors.163.com
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
addons                                                                                                       |  951 B     00:00    
addons/primary                                                                                               |  201 B     00:00    
base                                                                                                         | 2.1 kB     00:00    
base/primary_db                                     78% [================================         ] 141 kB/s | 1.2 MB     00:02 ETA



linux初级(a)
                  1>linux图像界面使用
                  2>linux简单目录结构
                  3>常用命令
                  4>linux系统安装
linux中级(b)
                  1>linux用户/文件系统管理
                  2>linux网络管理
                  3>linux磁盘管理
                  4>linux系统和日志维护管理
                  5>linux安全优化
                  6>linux系统备份与恢复
                  7>shell初步编程
linux高级(c)
                   服务器系统工程(c1)
                                            1>linux dns
                                            2>linux nis
                                            3>linux mail
                                            4>linux web
                                            5>linux ftp
                                            6>linux db
                                            7>linux 服务器管理
                                            8>linux 集群服务器
                    开发工程师(c2)
                                       1>shell高级编程、
                                       2>c语言开发
                                       3>内核基础
                                       4>linux驱动开发
                                       5>嵌入式开发
有个进程叫reg.exe,总是改我主页,在system32内,查了一下是不安全的。删了之后又出来。你说它改主页吧我让他改,可改过之后还要改,诺顿那个提示一直下不去。要怎么删。

360安全论坛好像有这种专杀工具可供下载,你自己去找找看。
如果要手动解决这种IE主页劫持病毒,对新手来说是很困难的。
还有一个最简单的方法,就是让它改主页,也不要改回来,在桌面或任务栏放一个IE浏览器的快捷方式(有小箭头的那种),右键单击IE快捷方式图标→ 属性→点“快捷方式”选项卡→  在“目标”框里面输入:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" site.baidu.com
注意,如果系统在D盘,就把C:改成D:;
这样修改之后,点击IE浏览器的快捷方式,不论主页是什么,一律打开site.baidu.com网站,如果想换成其他网站,把site.baidu.com换成其他网址即可,注意,双引号与网址之间有一个空格。
如果是NTFS格式的磁盘,还可以点击“安全”选项卡,禁止任何帐户修改IE快捷方式的属性,这样病毒更加没办法了。


  C:\WINDOWS\system32下的reg.exe文件开机的时候自动更改IE首页,手动删除,刷新后又出现。这个reg.exe没有任务管理器打不开,提示被管理员禁用,IE打开后不多久就会自动关掉,打开任务管理器以后发现进程里有很多很多的reg.exe进程在运行,而且每2秒刷新出来一个,一直刷,刷到电脑吃不消什么都打不开等现象,只是修改IE首页,所以试遍了网上的专杀和手动清除方法都不管用。最后没办法了,进入安全模式手动删除,然后重启后竟然没有发作,到C:\WINDOWS\system32查看,reg.exe已经被删除。本来很简单就能解决的问题,绕了一大圈才找到解决办法。

reg.exe
  
1. reg add

   用该命令加入一个新的指定键值,从给出的例子文件来看,基本的使用方法如下:
  命令-计算机名称-根键名-[子键名称-类型-数据]下面是更详细、规范的表述:
  reg add [\\machine\]keyname [/v valuename /ve] [/t type] [/s separator] [/d data] [/f]
  参数及说明:
  machine :
  计算机名称,此处关于计算机名称的介绍,其它命令也将使用,请注意.以machine指定远程计算机名称,如果省略,默认值是使用当前的本地计算机,不能使用驱动器名来指定远程计算机名.计算机名称前面的双反斜杠符号不能省去.如:\\mydiac 就是一个正确的范例.
  keyname :键名,此处关于键名的解释,其它命令也将使用,请注意.
  格式:[rootkey\]key
  rootkey 是根键
  根键可以使用以下形式的简写:
  根键名
  简写形式
  hkey_local_machine
  hklm
  hkey_current_user
  hkcu
  hkey_classes_root
  hkcr
  hkey_current_configuration
  hkcc
  注意: hklm 和 hkcu 键值仅适用与远程计算机。
  key :子键
  所选根键之下的子键的完整名字
  /v valuename
  向指定注册表加入新键值的名称,如果包含有空格,则字符串应使用引号
  /ve
  加入的空键值名
  /t type
  指定使用的数字或字符串的类型,这些类型与win9x相同,这里不再详细介绍.
  /s separator
  指定注册表使用的数据字符串的分隔字符,例如使用reg_multi_sz类型时.默认情况下就 "\o" 作为分隔字符。
  /f
  允许覆盖现存的注册表
  /d data
  向注册表中的指定键以指定数据赋于键值
  
2. reg compare

  
  将当前(本地计算机)的注册表与另外一个注册表或另外一个远程计算机上的注册表进行比较.将比较结果输出到一个文件上.
  reg compare [\\machine\]keyname1 [\\machine\]keyname2 [/v valuename] /ve] [/s] [output]
  参数及说明:
  machine :
  指定的计算机名称.含义与上面一样
  keyname1, keyname2:
  注册表的键名,含义及格式与上面一样
  /v valuename:
  进行比较的键值的名称,如果包含有空格,则字符串应使用引号
  /ve, /ve
  比较默认(无键名的)键值
  /s, /s :
  比较所有子键
  output 输出
  以下列形式的开关参数控制输出结果:
  /oa,/oa:输出全部的不同部分与相同部分
  /od,/od:仅输出不同部分; /os,/os:仅输出相同部分
  /on,/on没有任何输出
  返回代码的含义:
  0:成功地进行了比较,比较的结果是二者相同
  1:比较过程失败; 2-成功地进行了比较,比较的结果是二者不相同
  
3.reg copy

  
  将当前的注册表或远程计算机上的注册表拷贝到一个新的位置(或计算机上)。
  reg copy [\\machine\]sourcekey [\\machine\]destinationkey [/s] [/f]
  参数及说明:
  machine :
  指定的计算机名称.含义与上面一样
  sourcekey 和 destinationkey:
  "源"键和"目的"键:注册表的键名称,含义及格式与上面一样
  /s :
  拷贝全部子键及键值
  /f
  强制拷贝
  举例:
  甲例子:reg copy hklm\software\myco\myapp hklm\software\myco\savemyapp
  这里myapp和 savemyapp 是不同注册表中的子键名,都在键名为 myco的键之下.执行结果是将myapp拷贝向 savemyapp中。
  乙例子: reg copy \\safari\hklm\software\myco \\zodiac\hklm\software\myco
  这里的zodiac和safari是计算机名,myco 是两台机器的注册表中都有的键名,执行结果是safari机器的键值被拷向zodiac.它与上面一个的主要区别是:1.两台机器都是远程计算机.2.所拷贝的是该键之下的全部内容而不是某一项.
  丙例子: reg copy \\zodiac\hklm\software\myco hklm\software\myco1
  作用与上面类似,但zodiac是远程计算机,而hklm是本地当前所用计算机.
  
4.reg delete

  
  删除一个注册表、注册表键值或子键值.
  reg delete [\\machine\]keyname [/v valuename /ve /va] [/f]
你需要修改系统注册表来关闭此警告。首先,启动注册表编辑器:在“Start”菜单中选择“Run”并在文本框中输入“regedit”,然后单击“OK”。当打开注册表编辑器后,在左栏寻找以下条目:
  HKEY CURRENT USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  在右边一栏,查看键名为NoLowDiskSpaceChecks的键值。如果这个值存在,应该是设置为0,这也是此键的默认值。通过双击键名对其进行更改。你可以查看Edit String界面,在数值区域输入1然后单击“确定”。
  如果此键值不存在,则需要添加此键值。在Edit菜单中选择“New | DWORD Value”。新建的值将会出现在右边并提示你输入键名。输入NoLowDiskSpaceChecks并回车。请确认你没有在单词之间使用空格,这是一个很长的变量名。
  双击新键值。你可以看到Edit DWORD Value的屏幕,在数值区域输入1然后单击“OK”。当你完成以上步骤时,注册表屏幕应当如图A所示:

nopic

  图A:将NoLowDiskSpaceChecks加入注册表 完成后关闭注册表。你对注册表的修改会自动保存。重启计算机。当你的计算机重新启动后,那些讨厌的提醒就已经成为过去了。但是一定要记得提醒用户注意他们的计算机磁盘空间是否快满了。

通常,当可用磁盘空间少于200MB时,Windows XP会在每次启动时发出提醒。如果可用磁盘空间少于80MB,则会每四个小时通知一次直到可用磁盘空间超过80MB。一旦少于50MB,将会每5分钟通知一次直到此情况消除。如何取消呢?

(1)在“运行”栏中使用“Regedit”命令打开“注册表编辑器”窗口;

(2)在注册表中展开到如下分支:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

(3)在右侧窗格中创建一个名为“NoLowDiskSpaceChecks”的DWORD值,并赋其属性内容为数字“1”即可。
安装gvim、 ctags、tlist:
-----------------------------------------
(1) 下载gvim72.exe并安装

(2) 下载ctags57w32.zip (ctags)
解压后将ctags.exe放置到C:\windows\system32\

"开始" --> "运行" --> "cmd"
C:\Documents and Settings\Administrator>cd (进入源码所在目录)
D:\soft\linux-2.6.26\linux-2.6.26>ctags -R * (生成tags文件)

(3) 下载taglist_45.zip (tlist)
解压后将taglist_45\plugin\taglist.vim放置到C:\Program Files\Vim\vim71\plugin
      将taglist_45\doc\taglist.txt放置到C:\Program Files\Vim\vim71\doc



编辑D:\Program Files\Vim\_vimrc
-----------------------------------------
set tags=D:\soft\linux-2.6.26\linux-2.6.26\tags


" TAB距离 (vim配置; vim技巧)
set tabstop=4          " 保存一个tab是4个字符
set softtabstop=4      " 按一次tab前进4个字符
set shiftwidth=4       " shiftwidth写代码时用到,缩进为4字符
set cindent
set nobackup           " 让VIM不生成备份文件(~文件)

" 打开文件时光标自动到上次退出该文件时的光标所在位置
autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal`\"" | endif

if has("win32")
    set guifont=Nimbus_Mono_l:h15:cANSI
    "set guifontwide=楷体_GB2312:h10
    "set guifontwide=YaHei Consolas Hybrid:h10
    au GUIEnter * simalt ~x   " 窗口最大化
endif

colorscheme    koehler        " 颜色类型

set pastetoggle=<F11>         " pastetoggle(粘贴模式切换)可以避免自动缩进
                              " 的带来的格式影响;每次按下<F11>键可以打开
                              " /关闭自动缩进功
set expandtab                 " 将tab键转换为空格



代码折叠
-----------------------------------------------
set foldmethod=syntax " 用语法高亮来定义折叠
set foldmethod=indent " 更多的缩进表示更高级别的折叠(这个似乎效果好一些)

zo 打开折叠,也可以用方向键(左右键)打开折叠
zc 关闭折叠(只要在被折叠的块中的任一个语句就行)
zC 对所在范围内所有嵌套的折叠点进行折叠
zO 对所在范围内所有嵌套的折叠点展开

    当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之。可以使用下面的命令来创建和删除折叠:

zf   创建折叠,比如在marker方式下:
     zf56G,创建从当前行起到56行的代码折叠;
     10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。
     10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。
     在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

zd   删除(delete)在光标下的折叠。仅当'foldmethod'设为"manual"或"marker"时有效。
     : set foldmethod (查看当前foldmethod设置,vim默认设置为manual)。
zD   循环删除(Delete)光标下的折叠,即嵌套删除折叠。
     仅当'foldmethod'设为"manual"或"marker"时有效。
zE   除去(Eliminate)窗口里"所有"的折叠。
     仅当'foldmethod'设为"manual"或"marker"时有效。


切换窗口
-----------------------------------------------
用<C-W><C-W>切换当前窗口
当同时打开几个文件时,按<C-W>_使当前窗口最大化

<C-W> = ctrl+w


[+I显示文件中包含光标下<word>的所有行。我常用来浏览某个id在程序中的引用情况。[+I (大写I)


dfx   表示删除到下一个出现x的地方,x可以使任意字符。



%
--------------------------------
%用来匹配块
如果你的光标在类似([{}])或者#ifdef #else #endif上,输入%将把光标跳转到相应的匹配符号上去。

%还可以用来指定命令范围,如果你想把一个
{
    ...
}
的块全部删除。
可以先把光标移到{再敲d%

如果你想把一个块(包括{})全部往里缩进一个tab
可以把光标移到{敲>%

可以把光标移到{敲=%就是缩进一个块



buffer切换
--------------------------------
map <Left> :bp<CR>
map <Right> :bn<CR>
map <F4>    :bd<CR>

就可以用左右方向健来切换buffer(一个编辑文件切换到下一个编辑文件);
F4关闭buffer(关闭当前编辑文件)。

set hidden " 允许在有未保存的修改时切换缓冲区

注: 模式匹配中的回车换行
T42p Intel 2200bg 连接WPA2无线网问题


我是T42p XP SP3 无线网卡是Intel的2200bg 在连WEP的时候没有任何问题
可是在连WPA网络时 经常连不上 试过的路由器包括 NETGEAR LinkSys
最近刚换了个TP-Link 还是同样的问题 可以找到无线网络 可是一直
卡在获取地址阶段 如果这时候从路由器上用网线插在电口 无线就可以
获取到地址了(真怪)
另外开机的时候一般可以获取到地址 当时间长了 会断线 然后再也连不上
了 或者手动断线 也会连不上了 除非重启
相同的机器 我在另一个干净的系统也是同样问题
以前用过Netgear的外置式无线网卡 从未出现过这种问题
驱动已经升级到最新版本了

版上达人指点下吧 我自己的路由器可以设为WEP 可是到别的地方用的时候
就没办法了啊

我的T43也是这个2200BG的无线网卡,XP下不能用,就是连接不到无线网络,VISTA下没问题!
装最新驱动,最新的ac网络控制软件就ok了...连接速度还挺快!我觉得这个问题应该不是问题了吧???


结合Access Connection这个软件用答案补充
1、安装T42的配套软件Access Connection,重启电脑。Access Connection在ThinkPad的官网上有得下。2、双击任务栏右侧那个阶梯状的图标,在弹出的状态对话框中单击“寻找WLAN”按钮,搜寻附近可用的无线热点。3、选定你想连接的的那个热点,点连接就是了。4、连接完毕后提示你是否希望保存成位置概要文件,点是,方便下次自动连接。答案补充
T42有些型号的无线网卡( 比如11abg Wireless Adapter)在遇到WPA或者WPA2加密的时候,即使输入了密钥,仍然无法连接,而总是在分配IP地址。如果这时改用Access Connection替代Windows进行设置,问题就会迎刃而解。总之,我觉得Access Connection是整套ThinkVentage里面最常用,也是最好用的工具之一。不管什么小黑,要是缺了配套的软件,就感觉功能少了许多。
下载地址:
http://driver.it168.com/Download/2004-11-09/driver57884.shtml
问题是这样的,我和我的舍友关系不是很好,它把加密方式改成了WPA2-PSK,自从它改了以后我电脑就上不了网络了,路由器是TP-LINK。起初我以为他故意绑定MAC,IP让我上不了,后来我趁他不在家登陆路由器的设置界面发现他没绑定,那为什么我上不了了呢?后来我发现是加密方式改了,我发现它的无线网络设置里有WPA2-PSK,但是我的电脑却只有WPA-PSK,这是为什么啊,是不是我的IBM T42无法支持这种加密方式?网上也有人有这样的问题,但是没有人知道是为什么,有个人说要打个补丁,但是我在网上根本就没找到有这个补丁啊?有哪个高手知道这个问题要怎么解决吗?现在我只能偷偷用别人的无线网络上网了,别人要是晚上关了去睡觉我就没法上了,而且别人还要看PPLIVE很卡,连打开百度都要好几秒很难受啊!

结合Access Connection这个软件用答案补充
1、安装T42的配套软件Access Connection,重启电脑。Access Connection在ThinkPad的官网上有得下。2、双击任务栏右侧那个阶梯状的图标,在弹出的状态对话框中单击“寻找WLAN”按钮,搜寻附近可用的无线热点。3、选定你想连接的的那个热点,点连接就是了。4、连接完毕后提示你是否希望保存成位置概要文件,点是,方便下次自动连接。答案补充
T42有些型号的无线网卡( 比如11abg Wireless Adapter)在遇到WPA或者WPA2加密的时候,即使输入了密钥,仍然无法连接,而总是在分配IP地址。如果这时改用Access Connection替代Windows进行设置,问题就会迎刃而解。总之,我觉得Access Connection是整套ThinkVentage里面最常用,也是最好用的工具之一。不管什么小黑,要是缺了配套的软件,就感觉功能少了许多。

大方向错误。。。

1、应该在airport express里面设置pppoe连接;
2、可以试着使用WEP加



http://tieba.baidu.com/f?kz=687455626
http://www.macfans.com.cn/thread-136463-1-1.html
1.如何安装rpm软件包

rmp软件包的安装可以使用程序rpm来完成。执行下面的命令

rpm -i your-package.rpm

其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

安装过程中可能出现下面的警告或者提示:

... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有

的文件,缺省时这样的情况下是无法正确安装的可以用

rpm --force -i 强制安装即可

... is needed by ...

... is not installed ... 此包需要的一些软件你没有安装可以用

rpm --nodeps -i 来忽略此信息

也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包

都能安装上,但这种强制安装的软件包不能保证完全发挥功能

2.如何安装.src.rpm软件包

有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时

需要进行编译。这类软件包有两种安装方法,

方法一:

1.执行rpm -i your-package.src.rpm

2. cd /usr/src/redhat/SPECS

3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件

4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录

5. ./configure 这一步和编译普通的源码软件一样,可以加上参数

6. make

7. make install

方法二:

1.执行rpm -i you-package.src.rpm

2. cd /usr/src/redhat/SPECS

前两步和方法一相同

3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件

这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)

在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

执行rpm -i new-package.rpm即可安装完成。

3.如何卸载rpm软件包

使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm

比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:

rpm -e proftpd-1.2.8-1

rpm -e proftpd-1.2.8

rpm -e proftpd-

rpm -e proftpd

不可以是下列格式:

rpm -e proftpd-1.2.8-1.i386.rpm

rpm -e proftpd-1.2.8-1.i386

rpm -e proftpd-1.2

rpm -e proftpd-1

有时会出现一些错误或者警告:

... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载

可以用rpm -e --nodeps强制卸载

4.如何不安装但是获取rpm包中的文件

使用工具rpm2cpio和cpio

rpm2cpio xxx.rpm | cpio -vi

rpm2cpio xxx.rpm | cpio -idmv

rpm2cpio xxx.rpm | cpio --extract --make-directories

参数i和extract相同,表示提取文件。v表示指示执行进程

d和make-directory相同,表示根据包中文件原来的路径建立目录

m表示保持文件的更新时间。

5.如何查看与rpm包相关的文件和其他信息

下面所有的例子都假设使用软件包mysql-3.23.54a-11

1.我的系统中安装了那些rpm软件包

rpm -qa 讲列出所有安装过的包

如果要查找所有安装过的包含某个字符串sql的软件包

rpm -qa |grep sql

2.如何获得某个软件包的文件全名

rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得

当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11

3.一个rpm包中的文件安装到那里去了?

rpm -ql 包名

注意这里的是不包括.rpm后缀的软件包的名称

也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。

如果只是想知道可执行程序放到那里去了,也可以用which,比如

which mysql

4.一个rpm包中包含那些文件

一个没有安装过的软件包,使用rpm -qlp ****.rpm

一个已经安装过的软件包,还可以使用rpm -ql ****.rpm

5.如何获取关于一个软件包的版本,用途等相关信息?

一个没有安装过的软件包,使用rpm -qip ****.rpm

一个已经安装过的软件包,还可以使用rpm -qi ****.rpm 6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序

rpm -qf `which 程序名` 返回软件包的全名

rpm -qif `which 程序名` 返回软件包的有关信息

rpm -qlf `which 程序名` 返回软件包的文件列表

注意,这里不是引号,而是`,就是键盘左上角的那个键。

也可以使用rpm -qilf,同时输出软件包信息和文件列表


7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件

注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以

用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。

首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:

# whereis ftptop

ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz

# rpm -qf /usr/bin/ftptop

proftpd-1.2.8-1

# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt

proftpd-1.2.8-1

总结:

获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如

i 表示info,获得软件包的信息;

l 表示list,获得文件列表;

a 表示all,在所有包中执行查询;

f 表示file,根据文件进行相关的查询;

p 表示package,根据软件包进行查询

需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生

6.关于rpm软件包的一些相关知识

1.什么是rpm

rpm 即RedHat Package Management,是RedHat的发明之一

2.为什么需要rpm

在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的

程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,

配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个

较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统

以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载

3.是不是所有的linux都使用rpm

任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门

但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译,

所以有可能在别的系统上也使用rpm

除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包,

slakware也都有自己的包管理系统

4.rpm包的文件名为什么那么长

rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。

比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字

1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示

用于intel x86平台,还可能是sparc等。

5.软件包文件名中的i386,i686是什么意思

rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构

的信息。

i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)

i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32)

noarch指这个软件包于硬件架构无关,可以通用。

i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在

x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少

用,通常配置的机器都可以使用i686软件包

6.不同操作系统发行的rpm包可否混用?

对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。

对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同

系统下安装。

7.使用rpm时遇到的一些特殊问题

Q 我用rpm -e **.rpm无法删除rpm包

A 包名不要包括rpm,

rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm

Q 在MS的系统下有没有读RPM文件的工具?

A wincmd with rpm plugins.....

Q 是否可以通过ftp安装安装升级rpm包?

A 可以。rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM

Q rpm安装时已有的包版本过高怎么办?

A 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要

安装的包依赖的一些文件会找不到。这时有两种解决办法,

第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到

需要的目录下。

第二是下载安装新版本的软件包。

My previous articles on installing PHP on CentOS dealt with installing PHP 5.2.6. I have found this to have some bugs that kill the process without error information. One bug I found, which was on an x86_64 server, was that converting an object to a string did this.

So, I have compiled the latest PHP version, 5.2.10 5.3.0 5.3.1, and put it in my own repository for easy installation. I have compiled it for CentOS 5 i386 and x86_64, and provided the source RPMS in the repo, if anyone wants to compile it for another OS or architecture.

Update 2009-07-03 – I updated the version to PHP 5.3, which was released a few days before. This includes many new features such as closures, namespaces, and packaged scripts in phar files, which I’ll blog about soon. Check out PHP changelog for more details.
Update 2009-09-01 – Added a note about deprecated errors, and how to silence them. Also I have included a tip that might help those of you struggling to install.


I have also included the same php extensions I mentioned in my other article, php-mcrypt, php-mhash, php-mssql and php-tidy

To install, first you must tell rpm to accept rpm’s signed by me, then add the yum repository information to yum:

rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy
wget -P /etc/yum.repos.d/ http://repo.webtatic.com/yum/webtatic.repoNow you can install php by doing:

yum --enablerepo=webtatic install phpOr update an existing installation of php, which will also update all of the other php modules installed:

yum --enablerepo=webtatic update phpIf this does not work correctly, try disabling all other repositories while installing/updating, by adding the –disablerepo=* option. This will stop other dependencies from being installed, so you may want to install them first.

yum --disablerepo=* --enablerepo=webtatic update phpDeprecated Errors
Once you are running the new version, you may get “deprecated” errors in your error logs. This isn’t bad, it just means to tell you that some of the functions you are using are no longer prefered, and may be removed in a future major release. An example of this is the ereg functions. Preg functions are prefered over these, as they are much faster and more powerful, and in all cases do at least the same thing.

If upgrading the functions are not an option, and you would like to hide the deprecated errors from your error log, for example on a production server, just edit your /etc/php.ini file, find the line:

error_reporting  =  E_ALLand replace to:

error_reporting  =  E_ALL & ~E_DEPRECATED


http://www.webtatic.com/blog/2009/06/php-530-on-centos-5/
分页: 213/339 第一页 上页 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 下页 最后页 [ 显示模式: 摘要 | 列表 ]