到目前为止我其实还是算是一个php新手,这是我系统学习的第一个编程语言,其实所有的编程语言都是有共通之处的,就我的理解而言,所有的操作其实都是对字符的操作,我们通过判断字符的有无或者字符的具体的值是多少,进而来确定执行什么操作,而这所谓的操作其实也是对字符的操作,要么读取,要么添加,要么修改,要么删除。而程序的基本就是循环和分支。

所有的功能的操作都不会只有一种方法,都会有很多方法达到目的,但是当我们已经可以达到目的的时候就不能只单单的停留在功能的实现上,就应该考虑优化,就应该考虑如何更高效的完成任务达到目的。而这些函数对于我们这些苦命的phper而言,就应了那一句话“文章本天成,妙手偶得之!”。

其实所有的功能的实现都是可行的,也就是说我们的需求,我们想要实现的功能都是可以实现和做到的,方法已经在那里了,就等着我们去发现。要相信程序可以实现任何功能。只是有优劣之分罢了。下面就具体的说几个常用而又好用的字符处理函数。

1、 str_ireplace函数

字符替换函数,其实正则函数也有替换函数,但是,能用函数直接实现的最好还是用php自带的函数。而如果字符比较复杂,再使用正则。正则其实也非常的简单。

他虽然叫替换函数,但是,我们其实可以转变一下思路,他完全可以用来将某些字符清空。

例str_ireplace(‘<’,”,$content);就是将<清空。这样的应用很广。我在我的博客《织梦获取最新文章和连接的接口》中就有提到了这个应用。str_replace函数和他一样,只是前个函数对大小写不敏感,这个对大小写敏感。

2、 explode函数

explode(以什么分割,要分割的字符);这是个使用频率很高的函数,和他对应的就是implode()函数,implode链接函数,implode (“以什么连接,要连接的数组)=join函数。这两个函数结合使用可以取得很大的功效。很多时候,有的人在用“,”链接字符串的时候,用循环。其实,那样的话会在后面或前面多出一个“,”,而用implode函数就不会。这样可以应用于批量处理,比如一个多选框。提交后是数组的形式,我们要批量的删除,可以用implode用“,”来链接,然后在sql语句中使用where in($arry)来实现。

3、 strstr(a,b) 和strrchr(a,b)函数。

前一个是获取ab第一次出现位置后的所有字符,后一个是获取ab最后一次出现位置后的所有字符。后一个有一个非常好的妙用。那就是我们应该都有做过文件上传功能。在做这个功能的时候一定会遇到的就是获得文件的后缀,以前我们学习的时候是获取文件名后,用前面的explode函数分割,然后取第二个参数。但是,这样有个问题,就是如果文件的名字为xx.xx.jpg这样就会出错误了,当然我们可以获得数组的最后一个参数,但是这样也不好,太麻烦,而用strrchr(‘.’,文件名)这样就可以获得.后缀名,我觉得还是比较方便的。

4、 htmlentities函数

这个函数可能有很多人并没有使用过,但是这却是个非常有用很强大的一个函数。我们都知道php有防止sql注入的函数addslashes,其实他的作用也类似。我们都知道如果我们echo ‘<div></div>’;我们是无法看到的,但是查看下源码是能看到的,这就是因为输出的是html的关键字,被转译了。而有的时候,我们是需要是输出这些标签的,不单单是发类似的这种技术类的文章,还有就是有的时候我们使用一些接口类的程序,我们想对返回的值进行一些操作,但是返回的值都是html的关键字。我们看不到,就无从下手了,这时候,我们就可以用到这个函数来做调试。

 

5、urlencode函数

urlencode($filename);//转码,将中文转换成%数,将空格转换为+。空格为%20。这是一个转码函数,很多时候,我们都会因为中文字符的编码而头疼,总是会有乱码,尤其是我们在使用ajax的时候,会发现,有的时候ajax传递的中文经常出现乱码,要想编码统一,其实有四个地方需要注意,第一个是文件本身的格式,这个是很多人会忽略掉的,用editplus打开文件,会看到右下角,有个文件本身的编码默认的是ANSI,而如果你要使用utf8就需要文件另存,保存为utf8,还有就是html中的charset=utf-8″,然后是数据库连接函数中mysql_query(“SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary”,$con);最后一步就是数据库存储字段用到的编码格式,要使用utf8这样才能编码统一。而用这个函数就可以转换为数字和英文,这样不容易出现编码问题,当然接受的时候需要用UrlEncode来进行反转码。

6、写入文件函数

很多人不知道给文件写入数据的时候如何写入换行,我们以fwrite($file, “\r\n”);为例,如果将双引号改为单引号就不能写入换行,为什么,这就是php的一个机制,php会解析双引号里面的东西,而会将单引号的内容原样使用。所以,在不需要操作内部的数据的时候用单引号要快一些。既然提到了文件函数,这里说个file(file) 将文件每行付给一个数组,file_get_content(file) 将文件内容付给一个字符。这两个是有很大不同的。明白他们的不同可以有很大的用处。

7、pathinfo() 函数以数组的形式返回文件路径的信息。

<?php

print_r(pathinfo(“/testweb/test.txt”));

?>

输出:

Array

(

[dirname] => /testweb

[basename] => test.txt

[extension] => txt

)

8、array_pop — 将数组最后一个单元弹出(出栈)就是将该元素从数组中去掉付给一个变量

9  ucwords(string)将字符串的首字符转换成大写

ucwords(‘abc df’); //Abc Df

ucfirst(‘abc df’); //Abc df

看出不同了吗。

10 echo number_format(’1234567890.4545′,2,’.',’,'); //1,234,567,890.45

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/123/

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter