div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法[ZT]
1.DOCTYPE 影响 CSS 处理
2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行
3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中
4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式
6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
PHP获取服务器详细信息
获取系统类型及版本号: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)
只获取系统类型: php_uname(’s’) (或:PHP_OS,例:Windows NT)
只获取系统版本号: php_uname(‘r’) (例:5.1)
获取PHP运行方式: php_sapi_name() (PHP run mode:apache2handler)
获取前进程用户名: Get_Current_User()
获取PHP版本: PHP_VERSION
获取Zend版本: Zend_Version()
获取PHP安装路径: DEFAULT_INCLUDE_PATH
获取当前文件绝对路径: __FILE__
获取Http请求中Host值: $_SERVER["HTTP_HOST"] (返回值为域名或IP)
获取服务器IP: GetHostByName($_SERVER['SERVER_NAME'])
接受请求的服务器IP: $_SERVER["SERVER_ADDR"] (有时候获取不到,推荐用:GetHostByName($_SERVER['SERVER_NAME']))
获取客户端IP: $_SERVER['REMOTE_ADDR']
获取服务器解译引擎: $_SERVER['SERVER_SOFTWARE']
获取服务器CPU数量: $_SERVER['PROCESSOR_IDENTIFIER']
获取服务器系统目录: $_SERVER['SystemRoot']
获取服务器域名: $_SERVER['SERVER_NAME'] (建议使用:$_SERVER["HTTP_HOST"])
获取用户域名: $_SERVER['USERDOMAIN']
获取服务器语言: $_SERVER['HTTP_ACCEPT_LANGUAGE']
获取服务器Web端口: $_SERVER['SERVER_PORT']
—————————————————————————————————
下面是PHP获取当前服务器信息的基本语句。
HP程式版本: <?PHP echo PHP_VERSION; ?>
ZEND版本: <?PHP echo zend_version(); ?>
MYSQL支持: <?php echo function_exists (mysql_close)?”是”:”否”; ?>
MySQL数据库持续连接 : <?php echo @get_cfg_var(“mysql.allow_persistent”)?”是 “:”否”; ?>
MySQL最大连接数: <?php echo @get_cfg_var(“mysql.max_links”)==-1 ? “不限” : @get_cfg_var(“mysql.max_links”);?>
服务器操作系统: <?PHP echo PHP_OS; ?>
服务器端信息: <?PHP echo $_SERVER ['SERVER_SOFTWARE']; ?>
最大上传限制: <?PHP echo get_cfg_var (“upload_max_filesize”)?get_cfg_var (“upload_max_filesize”):”不允许上传附件”; ?>
最 大执行时间: <?PHP echo get_cfg_var(“max_execution_time”).”秒 “; ?>
脚本运行占用最大内存: <?PHP echo get_cfg_var (“memory_limit”)?get_cfg_var(“memory_limit”):”无” ?>
查询当前连接的MYSQL数据库的版本 php自带函数 mysql_get_server_info()
获得服务器系统时间 [...]
解析PHP中 传值、传引用、传地址之区别
PHP传值和传引用、传地址的区别:
传值:
是把实参的值赋值给行参,相当于复制一块同样的空间
那么对行参的修改,不会影响实参的值
<?php
function aa($i){
$i++;
}
//按值方式
$m=2;
aa($m);
echo “\$m=$m”; //输出 ” $m=2 ”
?>
传地址:
是传值的一种特殊方式,只是他传递的是地址,不是普通的如int
那么传地址以后,实参和行参都指向同一个对象
传引用:
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已
对行参的修改将影响实参的值
即传址时只需在函数调用时在参数的前面加上”&”号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。
<?php
function aa(&$i){
$i++;
}
//按址方式
$m=2;
aa(&$m);
echo “\$m=$m”; //输出 ” $m=3 ”
?>
———————————————————————————–
以下从函数调用的角度说,可能较好理解
传值:
函数参数压栈的是参数的副本。
任何的修改是在副本上作用,没有作用在原来的变量上。
传指针:
压栈的是指针变量的副本。
当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
传引用:
压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。(作用和传指针一样,只是引用少了解指针的草纸)
———————————————————————————–
函数参数传递机制的基本理论
函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。
值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的
实参变量。
———————————————————————————–
仅讨论一下值传递和引用:
所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。
php自定义函数
在PHP中我们同样可以自己来定义函数。我们通过自定义函数可以使我们的程序代码结构清晰易懂。我们通过模块化的程序结构设计,可以很大程度的减少我们的工作量,从而提高我们的工作效率。
函数的定义语法:
function 函数名 (参数列表)
{
函数功能;
}
任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它的函数和已定义类。
如果一个函数以以下两个范例的有条件的方式定义,其条件定义必须在调用之前完成。
例子:有条件的函数
<?php
$makefoo = true;
/*现在我们在这不能调用自定义函数foo(),因为它还不存在。但是能调用bar()。 */
bar();
if ($makefoo) {
function foo ()
{
echo “在程序没有执行到if语句以前foo()函数不存在。<br>”;
}
}
/* 现在我们能调用foo(),因为 $makefoo的条件已经满足且为真 */
if ($makefoo) foo();
function bar()
{
echo “在程序一开始bar()立刻存在。<br>”;
}?>
例子: 函数中的函数
<?php
function foo()
{
function bar()
{
$str= “在函数 foo() 被调用前bar()不存在。<br>”;
return $str;
}
}
foo();
$str=bar();
echo $str;
?>
我们从以上可知,当调用函数中的内部函数时必须按照我们定义函数时的顺序从外到内依次都调用到才行,否则程序将会提示找不到自定义函数。
PHP 不支持函数重载,可能也不支持取消定义或者重定义已声明的函数。
注意: 函数名是对大小写敏感的,不过在调用函数的时候,通常使用其在定义时相同的形式。
函数的参数:
通过函数的参数列表可以传递信息到函数内部,参数列表是一系列以逗号作为分隔符的变量和常量列表。 PHP 支持数值参数(默认), 变量参数, 和 默认参数值。 可变长度参数列表仅在 PHP 4 和后续版本中支持。例子:向函数传递数组
function takes_array($input)
{
echo “$input[0] + $input[1] = “, $input[0]+$input[1];
}
1、变量参数(关联参数):
缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它 并不会改变函数外部的值)。如果你希望允许函数修改它的参数值,你可以使用变量参数。
如果想要函数的一个参数总是变量参数,你可以在函数定义中该参数的 前面预先加上引用操作符号(&):
例子:变量参数
<?
function foo( &$bar ) {
$bar .= ” and [...]
河南网通帐号在线转换工具
http://www.7678.net/cnc_decode/
WD硬盘 C1门 解决办法
不慎我的硬盘是 西数WDC WD10EARS-003BB1 (931 GB) 每天清早来公司 硬盘吱吱嘎嘎启动甚慢,装Windows2003 系统 软件若干,开机时间据金山卫士 测算为7分钟多,让我无比汗颜,且启动后若干分钟什么也干不了,真正能用的时候大约需要15分钟,(无比锻炼了哥的耐心),装系统多次依然无果,机器配置也算不错了 CPU:酷睿I5 2300 主板:H67 由于不打游戏所以选择集显,无光驱,内存:KST 4G 1333 (单),按正常情况下E6700/2G/500G 开启速度约为35ms左右,而我的却。。。。在网上耐心搜寻结果发现是因为硬盘门事件(可百度搜索西数硬盘门),咱找到解决办法立马分享
下载软件:wdidle3_1_05
拷贝到U盘或者其他分区下面
开机启动进入纯DOS环境
输入wdidle3 查看硬盘是否为8ms
如果是 输入 wdidle3 /S300 回车
关机 重启试试吧
关于SM总线控制器驱动的安装
没有装SM总线控制器的再设备管理器看起来是这样的:
虽然说,这个控制器不装对日常简单应用没有多大影响,但是为了保证计算机的性能,避免在使用过程中出现各种奇怪的问题,不装是不行的。
下面开始安装,一般的驱动安装也可遵循此过程。
首先解压ATI SB600南桥驱动。我的版本是7.8的,解压默认再C:\ATI\********
然后打开相应文件夹,如下图:
红圈画的就是传说中的控制器驱动文件。
下面再次打开设备管理器,再SM总线控制器上点击右键,更新驱动程序—否,暂时不,下一步—选择从列表或指定位置安装,下一步—具体选项看下图:
然后确定,下一步!
稍微等待下就大功告成了。
SM BUS就出现在系统设备里了:
安装至此完成。
Thinkphp 中集成 KindEditor4.0.3
修改路径Thinkphp\lib\Think\Template\TagLib\TagLibHtml.class.php
case ‘KINDEDITOR’:
$parseStr = ‘ var editor; KindEditor.ready(function(K) { editor = K.create(\’textarea[name="content"]\’, { allowFileManager : true }); }); ‘.$content.”;
break;
无法启动HID Input Service服务,怎么办?
转:
解决HID Input Service启动就提示系统找不到指定文件
HID Input Service启动就提示系统找不到指定文件。
外接键盘上的快捷没法用,键盘不要驱动的,以前是可以正常工作的,现在用精简系统,该服务被精简掉了。
解决方案:
把hidserv.dll 放入C:\\WINDOWS\\SYSTEM32文件夹内,导入我上传的注册表文件,修改注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SvcHost下的netsvcs键值,添加HidServ,重启一遍
还有一个不太好的方法,是直接禁止掉这些不能启动的服务,看能不能用.
另外就是看看相应依附的服务能否被打开。
Re:无法启动HID Input Service服务,怎么办?
1. 启动注册表编辑器 (Regedt32.exe)。
2. 在以下注册表项中找到 ImagePath 字符串值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hidserv
注意:此步骤适用于注册表中的 Services 项下的任何服务。
3. 在右侧打开 ImagePath 值,然后确保它不包含任何额外的冒号 (:)、空格或字符。
C:\windows\System32\svchost.exe -k netsvcs
终于可以开启HID服务了,呵呵~~
运行regedit,修改[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hidserv]
下的ImagePath的值,正确的值应该是%SystemRoot%\System32\svchost.exe -k netsvcs(原来的值是\SystemRoot\C:\WINDOWS\System32\svchost.exe -k netsvcs)。
DirectAdmin面板下安装Zend Opitimizer教程
以前vpsma没有用过DirectAdmin,最近买的vps,空间商附带了DirectAdmin,研究了一段时间,发现没有装Zend,发下简单的安装Zend教程:
cd /usr/local/src
mkdir zend
cd zend
wget http://downloads.zend.com/optimizer/3.3.0a/ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
#具体版本可以去官方看或者自己需要哪个版本
tar -xzvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
cd ZendOptimizer-3.3.0a-linux-*
./install.sh
安装过程中会出现很多yes no的选项,以及是否覆盖php.ini,都按y确定即可,界面和装系统有点相像。安装完成后,大家可以用探针看下就可以了。
另外一个办法:
vi /usr/local/directadmin/custombuild/options.conf
把里面的 zend=no 改成 zend=yes.
cd /usr/local/directadmin/scripts
./customapache.sh
耐心的等待吧!最后界面都差不多,很多yes no的选项,以及是否覆盖php.ini,都按y确定即可!
vpsma在安装zend的时候没有遇到错误,如果你遇到什么错误,可以发出来,大家探讨下!或者用搜索引擎查下!
zt:http://www.vpsma.com/directadmin-zend-opitimizer-install.html