很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。

这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符 部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是 htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。

对于这两个函数,php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文:

This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.

从这句话中我们也可以看出来这两个函数虽然基本功能差不多,但是还是有细微的差别在里面的。再仔细看htmlspecialchars函数里面的一段话:

The translations performed are:

‘&’ (ampersand) becomes ‘&’

‘”‘ (double quote) becomes ‘”‘ when ENT_NOQUOTES is not set.

”’ (single quote) becomes ”’ only when ENT_QUOTES is set.

‘<’ (less than) becomes ‘<’

‘>’ (greater than) becomes ‘>’


可以了解到htmlspecialchars只转化上面这几个html代码,而htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。

posted @ 2009-05-15 14:43 小贱 阅读(145) 评论(0) 编辑

PHP中,大括号“{}”可以起到如下作用:

  • 将多个独立语句合并为一个复合语句,例如 if ... else ...中经常如此使用
  • 在变量间接引用中进行定界,避免歧义。例如 ${$my_var[8]}与${$my_var}[8]的区分
  • 用于指示字符串变量中的单个字符(下标从0开始),例如
$my_str="1234";
$my_str{1}='5'; //现在 $my_str 内容为 '1534'
此用法为PHP 5之后的特性,用于消除使用中括号引起的歧义。
posted @ 2009-04-30 11:15 小贱 阅读(323) 评论(0) 编辑

basename           string basename(string path[,string suffix])

dirname              dirname(__FILE__)或者dirname($_SERVER['PHP_SELF'])返回当前路径

 

 

 

 

 

 

 

 

 

prefix         前缀

suffix         后缀

 

posted @ 2009-04-29 16:27 小贱 阅读(80) 评论(0) 编辑

$a=array("a"=>'apple','b'=>'banana','c'=>array('x','y','z'));

echo或print输出结果:

Array

print_r输出结果:

 

Array

(

  [a]=>apple

  [b]=>banana

  [c]=>Array

  (

    [0]=>x

    [1]=>y

    [2]=>z

  )

)

var_dump输出结果:

 

array(3){

  ["a"]=>string(5) "apple"

  ["b"]=>string(6) "banana"

  ["c"]=>array(3){

      [0]=>string(1) "x"

      [1]=>string(1) "y"

    [2]=>string(1)  "z"   

  }

}

 

posted @ 2009-04-29 10:59 小贱 阅读(129) 评论(0) 编辑

var_dump      打印变量的相关信息

程式语句的替换           :替代{    end**替代}

isset()                   检测变量是否设置

defined()                   检测常量是否设置

global的应用               http://hi.baidu.com/luanxian/blog/item/a2928d94f0907a1dd31b7066.html

magic_quotes_gpc     http://hi.baidu.com/singkuan/blog/item/df5c960e50ec66e436d12203.html

@                             错误控制运算符

posted @ 2009-04-28 16:56 小贱 阅读(35) 评论(0) 编辑
<?php

$array = array('step one', 'step two', 'step three', 'step four');

// by default, the pointer is on the first element
echo current($array) . "<br />"n"; // "step one"

// skip two steps
echo next($array)."<BR />";
echo reset($array);
?>

 

 

reset -- 将数组的内部指针指向第一个单元

详见list() ,each(),[next()对应pre()][next(),each()会导致指针后移]

posted @ 2009-04-28 16:40 小贱 阅读(55) 评论(0) 编辑
1、变量表示
{$name}被解析成<?=$name?>,表示显示变量$name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

2、常量表示
{name}被解析成<?=name?>,表示显示常量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

3、条件判定
{if *} * {else} * {else} * {/if} 或者 {if *} * {/if},其中{if *}中的*就是此判定语句的条件表达式,符合php的表达式。

4、循环

{loop $a $b} * {/loop} 或者 {loop $a $b $c} * {/loop} ,{loop $a $b} * {/loop}被解析成<? if(is_array($a)) foreach($a AS $b) { ?> * <? } ?> ,而{loop $a $b $c} * {/loop}则被解析成 <? if(is_array($a)) foreach($a AS $b=>$c) { ?> * <? } ?>

foreach查看php手册


5.模板包含
{template 'module name','file name'}例如:{template 'phpcms','header'}表示包含模板目录,phpcms目录下header.html文件

建议 if 和 loop 语法应该写在html注释符之间,这样可以避免在编辑工具中难看,例如:
这样写 if
<!--{if $a>$b}--> <!--{else}--><!--{/if}-->
这样写 loop
<!--{loop $arr $key $val}--> <!--{/loop}-->

假如您不习惯这套语法,也可以直接在模板中书写php代码,例如<?php echo 'Hello World!';?>

参考目录:

http://hi.baidu.com/%C5%AC%C1%A6%C5%AC%C1%A6%D4%D9%C5%AC%C1%A6/blog/item/19d1a335ffb1b48ea71e1224.html
posted @ 2009-04-28 15:30 小贱 阅读(366) 评论(0) 编辑

静态是什么?

  伪静态就是:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。

  伪静态的生成的2种方式:

  1,框架型伪静态,这种是非常简单而且也是非常便于识别的,它的原理比较简单,就是做一个静态的主框架页面,然后把动态的内容链入副框架内,这个单从它的URL就可以看出眉目,如果整个网站的URL都是一样的,那么就一定是框架伪静态的。

  2,利用组件把asp的后辍显示为htm,这种方法的原理是有一点难度的,它主要是利用一个组件强制性的把asp文件的后辍显示为htm,对于客户来说,它是很难分辨的,因为显示的链接的确是以.htm结尾的,不过如果仔细观察它的链接,也能看出来一些眉目,因为这种URL是很奇怪的,中间带有asp的子样,而且后面还有些参数,不过参数的结果已经被隐藏掉了,但是看到这些就应该保持戒心了;不过,还是有办法找出它的原形,就是看程序文件,去找和URL相同的网页,因为htm的网页都是真实存在的,如果找不到这个网页的话,那它是伪静态化无疑了。

伪静态有什么用?

  我们做伪静态的目的就只有几种:

  1、 最主要的就是迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容!

  2、 方便用户访问网站 一个好网页如果是动态的用户在相互传播时感觉对方信任度不会高但一看一个静态页相对用户对网页的信任度就高点而且伪静态的后缀方式基本雷同 一看就知道是伪静态还是真的静态网页!

  3、 伪静态对SEO有利嘛?SEO中的伪静态如何定义?!

  在影响网站在搜索引擎的排名中,有很重要的一条是网页静态化,很多朋友在研究SEO的时候,因为有些技术原因,伪静态成了最大的门槛。

  我们知道,在SEO优化中,new_1234.html要比new.asp?id=1234更容易收录,一般对于有独立服务器的朋友来说,你就可以使用ISAPI_Rewrite的方式写伪静态规则,而对于只有虚拟空间的朋友,可能你只能使用一些ASP生成HTML的系统来帮助你了。今天重点说一下利用ISAPI_Rewrite构建伪静态。

  第一:

  首先我们需要下载一个ISAPI_Rewrite,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站进行伪静态配置。对于个人站长来说,精简版就足够了。

  第二:

  下载完成后,可以找到安装包里的.msi的文件,安装即可。

  第三:

  打开Internet 信息服务,右键,web站点属性,点击ISAPI筛选器选项卡.添加筛选器,这里的名称可以自己随意填写,路径自己指定ISAPI_Rewrite.dll,然后确定.

  下面我们先做一个测试页new.asp,可以按照下面的代码写  <%=request.querystring("id")%>

  然后,在浏览器中输入:

  http://127.0.0.1/new.asp?id=1234

  接着你就可以在网页上看到一行文字:“1234”

  看到这几个数字,就说明你测试成功了。

  现在我们开始来配置ISAPI_Rewrite :

  打开ISAPI_Rewrite的目录,把httpd.ini的只读属性去掉,打开编辑。我们现在是需要把new.asp?id=1234修改成类似new_1234.html的路径,因此,我们需要在httpd.ini中添加一句

  RewriteRule /new_([0-9,a-z]*).html /new.asp?id={GetProperty(Content)}

  保存后,我们就可以测试一下这个网址了:http://127.0.0.1/new_1234.html

  可以看到页面上的“1234”了吧,就这样伪静态配置成功了!

  当然,以上只是简单的,根据实际情况,还有目录型的,还有翻页类型等等。

posted @ 2009-04-28 10:51 小贱 阅读(401) 评论(0) 编辑

如果我是负责教育的,我有一把足够大的铁锤,我会抡起来把所有的中国学校都砸掉,因为现在不会有一个学校敢站出来说:我们学校是“教做人的”——全部都是“教书”的。

当然,也有些学生非常善于销售自我,比如,有个应聘网页设计的学生,因为他做的东西都是在学校的内部网,没法把作品展现给我看,他和我说:“我把作品放到一个叫职友集上,你可以看。”还有一个应聘文案助理的,也是将她的文章传到自己的BLOG上。晚上我回去打开他们的主页,觉得他们放在网上的内容很充实,比如应聘文案助理的学生,上面有很多她的随笔作品,我看到她不错的写作思路和思维水平,我决定明天通知这两个人上班。他们都是来自那些被人看成“差学校”的学生,但是,他们善于利用多种途径,来表达他们的优势。比如善于利用“职友集”、BLOG这种新的免费工具,的确成为他们赢得我的信任的关键。

总结今天的感受,我认为:

未毕业,先失业,不是因为没有工作机会提供,而是就业能力结构失衡;就业难的关键,也不是因为毕业生多,教育水平下降,而是自我认知的能力模糊,就业信心和自我价值期望的下降。天之骄子的高傲姿态消失,是好事,但取而代之的不是平衡心、平常心,而是一种自卑、浮躁和茫然。

你可以认为我摆谱、摆资格,但是,作为毕业生,我相信你还是愿意听听一个5年人力资源总监、有过1万人次面试经历的人力资源工作者,对你的如下“不满”:

不要递给我花里胡俏的简历,给我一点简洁(不是简单)而能突出你自己的表达——面对成千上万的求职者,你真的以为HR会去看你那封100个人有99个差不多的求职信、和装订得像书本一样的简历模板内容吗?

不要对我说太多的自我介绍,我不敢说3、5分钟我就准确判断了你,但是30秒之内我就定格了你的第一印象;我之所以很快结束你的面试,是因为你的后面排队的人真是太多,我也曾经作为毕业生这样苦苦的等待,我只是为了给更多的人一个和你一样平等的机会,而后我会挑选请你到我办公室复试;你认为我给你的时间太少,而流露出失望(自己是不是没被看中了?)眼神的那一刹那,你就丢失了再次获得复试的机会。我永远坚持:你的信心就是我的希望。你的岗位机会不是我给你的,而是你自己争取的。

不要一副“只要你招我我什么都肯做”的姿态,这样给我一种“卖身”的感觉,我请你是因为你会为公司创造价值,所以不是你“求”职,而是我“请”你。这不是叫你抬到姿态,而只是希望你抬起胸膛。

不要对我拒绝收你的简历,报以晦气的脸色或失望的情绪。我不接收你的简历,不是你不行,而是不适合我的公司;我不接收你的简历,不是不给你机会;而是不想给你根本不存在的期待(如果我收了,你会等待着我通知你);不是我不给你面子,而是我不想浪费你和你父母的血汗钱——尽管每一份简历只有1、2元,但是我没有任何理由,去浪费属于你的1分1厘,何况你还是一个纯消费者;我是在帮你节约,让你能够将它投给属于你的机会。我从不想当我拿不了那么多简历回公司的时候,把你的希望孤伶伶的留在招聘场地里;我更不希望,当招聘会结束以后,你的简历会在冷清的场地,像其它被丢下的简历一样,雪花般漫天飞舞,任人践踏——我决不加入这样的行列,而宁可以拒收给你打击(你也必须开始懂得直面这样的打击),因为你熬了多少个夜晚做出来的那个简历,代表的就是你,上面写着你的价值,和你的尊严。我始终认为,任何人都可以狠狠的批判教育制度,但是绝对不可以否定你的价值,更不可以践踏你的尊严!

不要不敢说出和写下你毕业的学校,无论她是如何的差,你是从那里走出来的,因为我绝对不会要这样的人:看到他父母的时候,因为他们的背景不好而不敢认他们;或者有一天离开我的公司,去到一个更大的公司面试的时候,不好意思说我是来自一个不是500强的公司。对公司来说,你的价值和价值观,决定了一切。英雄莫问出处,如果你是一个狗熊,哪怕你从天堂走出来,也还是狗熊。

不要给我罗列一大堆你的学习成绩和从事的所谓实习(因为很多毕业生也曾经到我这里来兜一圈,参观一下,盖个章名曰“实习”),你只需要挑选一件特别的事情,要点式地说明过程和结果,让我知道你是怎样做事的。

不要不敢用眼睛看着我,你不敢瞧我的时候我也瞧不起你。

不要在回答“你的薪酬要求”的时候,多了那么多废话。我不想听每个人都重复着“因为我是毕业生,没有社会经验,所以如果公司觉得这个要求太……我也可以……”,我的钱也许也是刚刚从人民银行印出来的,但是它们不会因为还没有被流通转手,而减损它的价值。其实我不在乎你说的是5000,还是1500,我在乎的是你说出一个数字的那种语气、眼神。我尊重每个人都有自估劳动力价值的权利(但公司自有它的薪酬制度,不会特殊对待你),但我喜欢干脆利落的同事,干脆利落是一种自信,是一种做事风格,也是一种做人态度。我会固执的认为:你说出这个数字前后带了多少个字符,就表示你做事有多拖泥带水;或者你的自我认识和自信是多么摇摆不定。

人生简短,价值无限,告诉人家你是独一无二的,你就是你,你成就你。

posted @ 2009-04-20 14:24 小贱 阅读(92) 评论(0) 编辑
摘要: 泛型 List 实现泛型接口 IComparer 排序速度快,效率高,内部使用的排序算法为快速排序。 using System; using System.Collections.Generic; namespace ListSort { class Program { static void Main(string[] args) { //初始化List<Obj> L...阅读全文
posted @ 2009-04-16 21:03 小贱 阅读(1331) 评论(0) 编辑