存档

‘编程开发’ 分类的存档

IE6双倍边距 (双陪margin) 解决办法

2011年1月16日 没有评论

问题:在IE6下如果某个标签使用了float属性,同时设置了其外补丁“margin:10px 0 0 10px”可以看出,上边距和左边距同样为10px,但第一个对象距左边有20px。

解决办法:当将其display属性设置为inline时问题就都解决了。

说明:这是因为块级对象默认的display属性值是block,当设置了浮动的同时,还设置了它的外边距就会出现这种情况。也许你会问:“为 什么第二个对象和第一个对象之间就不存在双倍边距的BUG”?因为浮动都有其相对应的对象,只有相对于其父对象的浮动对象才会出现这样的问题。第一个对象 是相对父对象的,而第二个对象是相对第一个对象的,所以第二个对象在设置后不会出现问题。另外在一些特殊布局中,可能需要组合使用 display:block;和display:inline;才能达到预期效果。
当然最坏的情况下,我们就可以使用”margin:10px 0 0 10px;*margin:10px 0 0 10px;_margin:10px 0 0 5px”,这种“标准属性;*IE7识别属性;_IE6识别属性”HACK方式解决。

总结:这个现象仅当块级对象设置了浮动属性后才会出现,内联对象(行级对象)不会出现此问题。并且只有设置左边距和右边距的值才会出问题,上下边距不会出现问题。

分类: 编程开发 标签:

PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

2011年1月10日 没有评论

关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

一、如何选择PHP5.3的VC9版本和VC6版本
VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。
二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进 程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基 础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP 扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。
为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个 进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优 势。
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。
再来看PHP的两种执行方式:ISAPI和FastCGI。
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
分类: 编程开发 标签:

jquery 实现 锚点的平滑移动

2010年12月30日 没有评论

<form id=”form1″ runat=”server”>

<script type=”text/javascript”>
$(function() {
$(“a”).click(function() {//给所有的a标记添加单击事件;

var href = $(this).attr(“href”);//我们用向下去的那个连接剧例子,当点击“滑到底部” 时 获取它的href属性为“#bottom”;
var pos = $(href).offset().top;//$(href)就相当于找到$(“#bottom”)(最下面的标记),找到他距离顶部的距离;
$(“html,body”).animate({ scrollTop: pos }, 3000);
return false;

//$(“html,body”).animate({ scrollTop: $(“#top”).offset().top }, 1000);//animate是多长时间执行一个操作,找到id为top的标签距离顶部的位置;一秒移动到顶部;
});
});

</script>

<div id=”top”>
平滑跳转到底部:<a href=”#bottom”>滑到底部</a>
</div>
<div id=”appendBox”>
<img width=”300″ height=”3281″ src=”http://ss4.sinaimg.cn/bmiddle/6200b7a8t8b6743480673&690″ />
</div>
<div id=”bottom”>
平滑回到顶部:<a href=”#top”>回到顶部链接</a>
</div>
</form>

分类: 编程开发 标签:

win7安装svnserver服务 [sc] openSCManager 失败 5 拒绝 访问拒绝

2010年12月25日 没有评论

win7的安全权限方案,在执行其他一些操作时会让人刚到莫名其妙。解决方案:
建立一个新文件svnSetup.bat.

输入:
sc create svnserve binpath= “\”C:\Program Files\VisualSVN Server\bin\svnserve.exe\” –service –root F:\Repositories” displayname= “Subversion” depend= tcpip start= auto
sc start svnserve

保存。

右键单击svnSetup.bat,选择以“管理员方式运行”即可。

总结:主要原因仍是没有权限,在命令行时执行这个操作总是提示没有权限,而以管理员方式运行则避免了这个问题,相当迂回了一下吧。

分类: 编程开发 标签:

mysql输入小数自动变为整数

2010年12月6日 没有评论

mysql输入小数自动变为整数,很是郁闷的问题。

数据库中字段的类型明显设置的是double的类型,但输入小数的时候,小数就会变成整数。很是奇怪。

使用的是navicat客户端,里面有个“十进位”,也不知道是做什么的。

后来在预览sql语句的时候,发现了`bank`  double(11,0) NOT NULL.

想了想,把double(11,0)改成了double(11,3),果然,能插入小数了,并且保留了三位小数,而且“十进位”选项上写了3。

明白了这个“十进位”的意义。

分类: 编程开发 标签:

HTML中的特殊转义字符

2010年12月2日 没有评论

‘&apos;’=>’&#39;’ ‘
‘&minus;’=>’&#45;’ -
‘&circ;’=>’&#94;’ ^
‘&tilde;’=>’&#126;’ ~
‘&Scaron;’=>’&#138;’ Š
‘&lsaquo;’=>’&#139;’ ‹
‘&OElig;’=>’&#140;’ Œ
‘&lsquo;’=>’&#145;’ ‘
‘&rsquo;’=>’&#146;’ ’
‘&ldquo;’=>’&#147;’ “
‘&rdquo;’=>’&#148;’ ”
‘&bull;’=>’&#149;’ •
‘&ndash;’=>’&#150;’ –
‘&mdash;’=>’&#151;’ —
‘&tilde;’=>’&#152;’ ˜
‘&trade;’=>’&#153;’ ™
‘&scaron;’=>’&#154;’ š
‘&rsaquo;’=>’&#155;’ ›
‘&oelig;’=>’&#156;’ œ
‘&Yuml;’=>’&#159;’ Ÿ
‘&yuml;’=>’&#255;’ ÿ
‘&OElig;’=>’&#338;’ Œ
‘&oelig;’=>’&#339;’ œ
‘&Scaron;’=>’&#352;’ Š
‘&scaron;’=>’&#353;’ š
‘&Yuml;’=>’&#376;’ Ÿ
‘&fnof;’=>’&#402;’ ƒ
‘&circ;’=>’&#710;’ ˆ
‘&tilde;’=>’&#732;’ ˜
‘&Alpha;’=>’&#913;’ Α
‘&Beta;’=>’&#914;’ Β
‘&Gamma;’=>’&#915;’ Γ
‘&Delta;’=>’&#916;’ Δ
‘&Epsilon;’=>’&#917;’ Ε
‘&Zeta;’=>’&#918;’ Ζ
‘&Eta;’=>’&#919;’ Η
‘&Theta;’=>’&#920;’ Θ
‘&Iota;’=>’&#921;’ Ι
‘&Kappa;’=>’&#922;’ Κ
‘&Lambda;’=>’&#923;’ Λ
‘&Mu;’=>’&#924;’ Μ
‘&Nu;’=>’&#925;’ Ν
‘&Xi;’=>’&#926;’ Ξ
‘&Omicron;’=>’&#927;’ Ο
‘&Pi;’=>’&#928;’ Π
‘&Rho;’=>’&#929;’ Ρ
‘&Sigma;’=>’&#931;’ Σ
‘&Tau;’=>’&#932;’ Τ
‘&Upsilon;’=>’&#933;’ Υ
‘&Phi;’=>’&#934;’ Φ
‘&Chi;’=>’&#935;’ Χ
‘&Psi;’=>’&#936;’ Ψ
‘&Omega;’=>’&#937;’ Ω
‘&alpha;’=>’&#945;’ α
‘&beta;’=>’&#946;’ β
‘&gamma;’=>’&#947;’ γ
‘&delta;’=>’&#948;’ δ
‘&epsilon;’=>’&#949;’ ε
‘&zeta;’=>’&#950;’ ζ
‘&eta;’=>’&#951;’ η
‘&theta;’=>’&#952;’ θ
‘&iota;’=>’&#953;’ ι
‘&kappa;’=>’&#954;’ κ
‘&lambda;’=>’&#955;’ λ
‘&mu;’=>’&#956;’ μ
‘&nu;’=>’&#957;’ ν
‘&xi;’=>’&#958;’ ξ
‘&omicron;’=>’&#959;’ ο
‘&pi;’=>’&#960;’ π
‘&rho;’=>’&#961;’ ρ
‘&sigmaf;’=>’&#962;’ ς
‘&sigma;’=>’&#963;’ σ
‘&tau;’=>’&#964;’ τ
‘&upsilon;’=>’&#965;’ υ
‘&phi;’=>’&#966;’ φ
‘&chi;’=>’&#967;’ χ
‘&psi;’=>’&#968;’ ψ
‘&omega;’=>’&#969;’ ω
‘&thetasym;’=>’&#977;’ ϑ
‘&upsih;’=>’&#978;’ ϒ
‘&piv;’=>’&#982;’ ϖ
‘&ensp;’=>’&#8194;’
‘&emsp;’=>’&#8195;’
‘&thinsp;’=>’&#8201;’
‘&zwnj;’=>’&#8204;’ ‌
‘&zwj;’=>’&#8205;’ ‍
‘&lrm;’=>’&#8206;’ ‎
‘&rlm;’=>’&#8207;’ ‏
‘&ndash;’=>’&#8211;’ –
‘&mdash;’=>’&#8212;’ —
‘&lsquo;’=>’&#8216;’ ‘
‘&rsquo;’=>’&#8217;’ ’
‘&sbquo;’=>’&#8218;’ ‚
‘&ldquo;’=>’&#8220;’ “
‘&rdquo;’=>’&#8221;’ ”
‘&bdquo;’=>’&#8222;’ „
‘&dagger;’=>’&#8224;’ †
‘&Dagger;’=>’&#8225;’ ‡
‘&bull;’=>’&#8226;’ •
‘&hellip;’=>’&#8230;’ …
‘&permil;’=>’&#8240;’ ‰
‘&prime;’=>’&#8242;’ ′
‘&Prime;’=>’&#8243;’ ″
‘&lsaquo;’=>’&#8249;’ ‹
‘&rsaquo;’=>’&#8250;’ ›
‘&oline;’=>’&#8254;’ ‾
‘&frasl;’=>’&#8260;’ ⁄
‘&euro;’=>’&#8364;’ €
‘&image;’=>’&#8465;’ ℑ
‘&weierp;’=>’&#8472;’ ℘
‘&real;’=>’&#8476;’ ℜ
‘&trade;’=>’&#8482;’ ™
‘&alefsym;’=>’&#8501;’ ℵ
‘&larr;’=>’&#8592;’ ←
‘&uarr;’=>’&#8593;’ ↑
‘&rarr;’=>’&#8594;’ →
‘&darr;’=>’&#8595;’ ↓
‘&harr;’=>’&#8596;’ ↔
‘&crarr;’=>’&#8629;’ ↵
‘&lArr;’=>’&#8656;’ ⇐
‘&uArr;’=>’&#8657;’ ⇑
‘&rArr;’=>’&#8658;’ ⇒
‘&dArr;’=>’&#8659;’ ⇓
‘&hArr;’=>’&#8660;’ ⇔
‘&forall;’=>’&#8704;’ ∀
‘&part;’=>’&#8706;’ ∂
‘&exist;’=>’&#8707;’ ∃
‘&empty;’=>’&#8709;’ ∅
‘&nabla;’=>’&#8711;’ ∇
‘&isin;’=>’&#8712;’ ∈
‘&notin;’=>’&#8713;’ ∉
‘&ni;’=>’&#8715;’ ∋
‘&prod;’=>’&#8719;’ ∏
‘&sum;’=>’&#8721;’ ∑
‘&minus;’=>’&#8722;’ −
‘&lowast;’=>’&#8727;’ ∗
‘&radic;’=>’&#8730;’ √
‘&prop;’=>’&#8733;’ ∝
‘&infin;’=>’&#8734;’ ∞
‘&ang;’=>’&#8736;’ ∠
‘&and;’=>’&#8743;’ ∧
‘&or;’=>’&#8744;’ ∨
‘&cap;’=>’&#8745;’ ∩
‘&cup;’=>’&#8746;’ ∪
‘&int;’=>’&#8747;’ ∫
‘&there4;’ =>’&#8756;’ ∴
‘&sim;’=>’&#8764;’ ∼
‘&cong;’=>’&#8773;’ ≅
‘&asymp;’=>’&#8776;’ ≈
‘&ne;’=>’&#8800;’ ≠
‘&equiv;’=>’&#8801;’ ≡
‘&le;’=>’&#8804;’ ≤
‘&ge;’=>’&#8805;’ ≥
‘&sub;’=>’&#8834;’ ⊂
‘&sup;’=>’&#8835;’ ⊃
‘&nsub;’=>’&#8836;’ ⊄
‘&sube;’=>’&#8838;’ ⊆
‘&supe;’=>’&#8839;’ ⊇
‘&oplus;’=>’&#8853;’ ⊕
‘&otimes;’=>’&#8855;’ ⊗
‘&perp;’=>’&#8869;’ ⊥
‘&sdot;’=>’&#8901;’ ⋅
‘&lceil;’=>’&#8968;’ ⌈
‘&rceil;’=>’&#8969;’ ⌉
‘&lfloor;’=>’&#8970;’ ⌊
‘&rfloor;’=>’&#8971;’ ⌋
‘&lang;’=>’&#9001;’ 〈
‘&rang;’=>’&#9002;’ 〉
‘&loz;’=>’&#9674;’ ◊
‘&spades;’=>’&#9824;’ ♠
‘&clubs;’=>’&#9827;’ ♣
‘&hearts;’=>’&#9829;’ ♥
‘&diams;’=>’&#9830;’ ♦

‘&middot;’=>’&#183;’ ·

‘&times;’=>’&#215;’ ×

‘&divide;’=>’&#247;’ ÷

‘&plusmn;’=>’&#177;’ ±

‘&deg;’=>’&#176;’ °

‘&ordm;’=>’&#186;’ º

分类: 编程开发 标签:

基础补习:PHP易混淆函数的区分方法及意义

2010年10月23日 没有评论

1.echo和print的区别

PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

复制PHP内容到剪贴板

PHP代码:

$r = print “Hello World”;

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

2.include与require的区别

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:

复制PHP内容到剪贴板

PHP代码:

if($a){

include(“a.php”);

}

而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里:

复制PHP内容到剪贴板

PHP代码:

if($a){

require(“a.php”);

}

在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!但requre却会给你来个致命错误。

当然,从字面意思上我们也可以理解七分:requre是很强硬的请求、要求的意思。

3.require_once()和include_once()语句

题外话了,因为长的像,简单require_once()和include_once()语句分别对应于require()和 include()语句。 require_once() 和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。

4.空字符串(”)和NULL的区别

PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,你可以试一下echo gettype(”);和echo gettype(NULL);你会发现他们打印出来的分别是string和NULL,当然还有0也容易混淆,你可以试试echo gettype(0);打印一下类型,会发现0的类型是integer(整型),可见字符串(”)、NULL和0是“等值”但不等类型。

5.!isset和empty的区别

从字面意思上我们就可以明白:empty是判断一个变量是否为“空”,而isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测$id 变量的时候,当$id=0 ,用empty和isset来检测变量$id是否已经配置,两都将返回不同的值:empty 认为没有配置,isset 则能够取得 $id 的值,看下边例子:

复制PHP内容到剪贴板

PHP代码:

$id=0;

empty($id)?print “我是空的”:print “我是$id .”; //结果:我是空的

!isset($id)?print “我是空的”:print “我是$id .”;//结果:我是0

6.==(等)和===(恒等)的区别

回顾上面第四条空字符串(“”)和NULL的区别,再来看一个例子:

复制PHP内容到剪贴板

PHP代码:

” == NULL;

” === NULL;

运行之后你会发现第一个为true,而第二个则为false!可见==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。

分类: 编程开发 标签:

让Dreamweaver支持jQuery自动提示代码功能

2010年10月9日 没有评论

要让Dreamweaver支持jQuery自动提示代码功能,方法很简单,下载一个插件—jQuery_API.mxp[点击下载]。

在Dreamweaver里依次选择“命令” -> “扩展管理” -> “安装扩展” -> …,就会自动安装了。

成功后重启Dreamweaver,就大功告成了。

下载DW cs4的jQuery语法提示插件:http://jquerydemos.googlecode.com/files/jQuery_api_for_dw4.rar

下载DW cs4的jQuery语法提示插件:http://jquerydemos.googlecode.com/files/jQuery_api_for_dw3.rar

注意:如果您安装的是精简版的Dreamweaver,那么请先下载Adobe Extension Manager 插件管理器[点击下载],我自己是cs3的,因此该处链接也是适用于cs3,请根据自己相应版本选择下载。

分类: 编程开发 标签: ,

Div background image和img的区别

2010年9月25日 没有评论

1. 语义上的区别:div background image是背景图片,img是前景图片;

2. div background image必须显示指定宽高,而img则不需要;

3. img不能嵌套,而div可以嵌套。所以在div background image上再放其他元素比较方便些。

4.如果图片对你的网页有比较重要的意义,应该用src;background的话浏览者只能看到而无法查看你的图片,搜索引擎也无法看到它,而用<img src=”…” />你还可以添加alt对图片进行说明,便于搜索。

分类: 编程开发 标签:

什么是块级元素和内联级元素

2010年9月25日 没有评论

block(块)元素的特点:

①总是在新行上开始;

②高度,行高以及外边距和内边距都可控制;

③宽度缺省是它的容器的100%,除非设定一个宽度。

④它可以容纳内联元素和其他块元素

inline元素的特点:

①和其他元素都在一行上;

②高,行高及外边距和内边距不可改变;

③宽度就是它的文字或图片的宽度,不可改变

④内联元素只能容纳文本或者其他内联元素
(中文叫法有多种内联元素、内嵌元素、行内元素、直进式元素)。

块元素(block element)和内联元素(inline element)都是html规范中的概念。块元素和

内联元素的基本差异是块元素一般都从新行开始。而当加入了css控制以后,块元

素和内联元素的这种属性差异就不成为差异了。比如,我们完全可以把内联元素

加上display:block这样的属性,让他也有每次都从新行开始的属性即成为块元素

,同样我们可以把块元素加上display:inline这样的属性,让他也在一行上排列

可变元素:

是基于以上两者随环境而变化的,它的基本概念就是他需要根据上下文关系确定该

元素是块元素或者内联元素。可变元素还是属于上述两种元素类别,一旦上下文关系确

定了他的类别,他就要遵循块元素或者内联元素的规则限制

块元素(block element)

◎ address – 地址

◎ blockquote – 块引用

◎ center – 举中对齐块

◎ dir – 目录列表

◎ div – 常用块级容易,也是css layout的主要标签

◎ dl – 定义列表

◎ fieldset – form控制组

◎ form – 交互表单

◎ h1 – 大标题

◎ h2 – 副标题

◎ h3 – 3级标题

◎ h4 – 4级标题

◎ h5 – 5级标题

◎ h6 – 6级标题

◎ hr – 水平分隔线

◎ isindex – input prompt

◎ menu – 菜单列表

◎ noframes – frames可选内容,(对于不支持frame的浏览器显示此区块内容)

◎ noscript – 可选脚本内容(对于不支持script的浏览器显示此内容)

◎ ol – 排序表单

◎ p – 段落

◎ pre – 格式化文本

◎ table – 表格

◎ ul – 非排序列表(无序列表)

内联元素(inline element)

◎ a – 锚点

◎ abbr – 缩写

◎ acronym – 首字

◎ b – 粗体(不推荐)

◎ bdo – bidi override

◎ big – 大字体

◎ br – 换行

◎ cite – 引用

◎ code – 计算机代码(在引用源码的时候需要)

◎ dfn – 定义字段

◎ em – 强调

◎ font – 字体设定(不推荐)

◎ i – 斜体

◎ img – 图片

◎ input – 输入框

◎ kbd – 定义键盘文本

◎ label – 表格标签

◎ q – 短引用

◎ s – 中划线(不推荐)

◎ samp – 定义范例计算机代码

◎ select – 项目选择

◎ small – 小字体文本

◎ span – 常用内联容器,定义文本内区块

◎ strike – 中划线

◎ strong – 粗体强调

◎ sub – 下标

◎ sup – 上标

◎ textarea – 多行文本输入框

◎ tt – 电传文本

◎ u – 下划线

◎ var – 定义变量

可变元素:可变元素为根据上下文语境决定该元素为块元素或者内联元素。

◎ applet – java applet

◎ button – 按钮

◎ del – 删除文本

◎ iframe – inline frame

◎ ins – 插入的文本

◎ map – 图片区块(map)

◎ object – object对象

◎ script – 客户端脚本

分类: 编程开发 标签: