首页 > php函数

正规表达式函数

PHP与其它跨平台语言(也许Java不在其列. :))类似,也有正规表达式功能. PHP3.0的正规表达式功能当然远远比不上Perl,但还是足够用的,主要函数有这么些:
(1)ereg,eregi
这是正规表达式匹配函数,前者是大小写有关匹配,后者则是无关的.
用法: ereg(正规表达式,字符串,[匹配部分数组名]);
PHP3.0中的正规表达式大体类似于grep中用的.
 
(2)ereg_replace,eregi_replace
这些是替换函数.
用法:
ereg_replace(正规表达式,替换串,原字符串);
字符串处理函数中有一个strtr,是"翻译"函数,类似于Perl中的tr/.../.../,
用法: strtr(字符串,"从","到");
例如:strtr("aaabb","ab","cd")返回"cccdd".

(3)split
与explode函数有些类似,但这次可以在匹配某正规表达式的地方分割字符串.
用法:
split(正规表达式,字符串,[取出前多少项]);

阅读全文

图象函数

PHP中有一组图像函数,可以动态生成gif格式的图像数据流并输出到服务器. 为了这组函数能够工作,系统中必须有gd库的支持.如果是在Unix下, 应该在编译PHP之前先取得gd的源码并编译之,生成libgd.a和一些.h文件,分别拷到系统的库目录和头文件目录中(例如/usr/lib和/usr/include);如果是在Windows下,PHP3.0的安装程序会安装一个gd.dll文件,在程序中加一句'dl("gd.dll");'即可使用图像函数.
主要的图像函数有:
(1)ImageCreate(宽度,高度)
返回一个图像描述符.
 
(2)ImageCreateFromGif(文件名);
返回一个图像描述符.
 
(3)ImageColorAllocate(图像描述符,红,绿,蓝);
返回一个颜色描述符.由于Gif图像只能有256色,必须先对它分配调色板, 这个语句就是分配一个调色板项.
 
(4)ImageColorTransparent(图像描述符,颜色描述符);
指定某颜色为透明色.
 
(5)ImageArc(图像描述符,圆心横坐标,圆心纵坐标,椭圆宽,椭圆高,起始角,终止角,颜色描述符);
ImageChar(图像描述符,字体,x,y,字符,颜色描述符);
ImageCharUp(图像描述符,字体,x,y,字符,颜色描述符);
ImageCopyResized(目标图像描述符,源图像描述符,目标x,目标y,源x,源y,目标宽,目标高,源宽,源高);
ImageDashedLine(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageFill(图像描述符,起始点x,起始点y,颜色描述符);
ImageFilledPolygon(图像描述符,各顶点数组,顶点数,颜色描述符);
ImageFilledRectangle(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageFillToBorder(图像描述符,起始点x,起始点y,边界色,填充色);
ImageLine(图像描述符,x1,y1,x2,y2,颜色描述符);
ImagePolygon(图像描述符,各顶点数组,顶点数,颜色描述符);
ImageRectangle(图像描述符,x1,y1,x2,y2,颜色描述符);
ImageSetPixel(图像描述符,x,y,颜色描述符);
ImageString(图像描述符,字体,x,y,字符串,颜色描述符);
ImageStringUp(图像描述符,字体,x,y,字符串,颜色描述符);
这些都是画图函数,需要略做解释的就是多边形的顶点数组内依次存放着第一点x,第一点y,第二点x,第二点y,...
 
(6)ImageLoadFont(文件名);
文件应该是一个位图字体文件,返回一个字体号.系统缺省带有1-5字体号, 可以直接使用.

阅读全文

看实例学正则表达式

首先,让我们看看两个非凡的字符:’^’ 和 ‘$’ 他们是分别用来匹配字符串的开始和结束,一下分别举例说明:

"^The": 匹配以 "The"开头的字符串;

"of despair$": 匹配以 "of despair" 结尾的字符串;

"^abc$": 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配;

"notice": 匹配包含notice的字符串;

你可以看见假如你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边。

这里还有几个字符 '*', ' ',和 '?', 他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示:"zero or more", "one or more", and "zero or one." 这里是一些例子:

"ab*": 匹配字符串a和0个或者更多b组成的字符串("a", "ab", "abbb", etc.);

"ab ": 和上面一样,但最少有一个b ("ab", "abbb", etc.);

"ab?":匹配0个或者一个b;

"a?b $": 匹配以一个或者0个a再加上一个以上的b结尾的字符串.

你也可以在大括号里面限制字符出现的个数,比如

"ab{2}": 匹配一个a后面跟两个b(一个也不能少)("abb");

"ab{2,}": 最少更两个b("abb", "abbbb", etc.);

"ab{3,5}": 2-5个b("abbb", "abbbb", or "abbbbb").

你还要注重到你必须总是指定 (i.e, "{0,2}", not "{,2}").同样,你必须注重到, '*', ' ', 和'?' 分别和一下三个范围标注是一样的,"{0,}", "{1,}", 和 "{0,1}"。

现在把一定数量的字符放到小括号里,比如:

"a(bc)*": 匹配 a 后面跟0个或者一个"bc";

"a(bc){1,5}": 一个到5个 "bc."

还有一个字符 '│', 相当于OR 操作:

"hi│hello": 匹配含有"hi" 或者 "hello" 的 字符串;

"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字符串;

"(a│B)*c": 匹配含有这样 - 多个(包括0个)a或b,后面跟一个c的字符串 的字符串;

一个点('.')可以代表所有的 单一字符:

"a.[0-9]": 一个a跟一个字符再跟一个数字的 (含有这样一个字符串的字符串将被匹配,以后省略此括号)

"^.{3}$": 以三个字符结尾.中括号括住的内容只匹配一个 单一的字符

"[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样);

"[a-d]": 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样);

"^[a-zA-Z]": 匹配以字母开头的字符串

"[0-9]%": 匹配含有 形如 x% 的字符串

",[a-zA-Z0-9]$": 匹配以逗号在加一个数字或字母结尾的字符串

你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 作为开头 (i.e., "%[^a-zA-Z]%" 匹配含有 两个百分号里面有一个非字母 的字符串).

为了能够解释,但"^.[$()│* ?{"作为有非凡意义的字符的时候,你必须在这些字符面前加'', 还有在php3中你应该避免在模式的最前面使用, 比如说,正则表达式 "($│?[0-9] " 应该这样调用 ereg("($│?[0-9] ", $str) (不知道php4是不是一样)

不要忘记在中括号里面的字符是这条规路的例外

阅读全文

PHP array_merge_recursive 与array_merge() 函数使用方法

PHP array_merge_recursive 数据合并函数与array_merge() 函数使用方法 以及实例教程

array_merge_recursive 定义和用法
该array_merge_recursive ( )函数合并一矿多阵列成一个阵列。之间的差异这一职能蚂蚁的array_merge ( )函数是当两个或更多的数组元素具有相同的关键。而不是凌驾于按键, array_merge_recursivse ( )函数使得价值的一个数组。 (见例1 )

语法

阅读全文

php array_intersect_ukey()函数使用方法

好了下面我们来看看phparray_intersect_ukey()函数使用方法与实例教程吧.

array_intersect_ukey()定义和用法
该array_intersect_ukey ( )函数比较的钥匙在两个或两个以上的阵列,检查比赛之前,比较的钥匙在一个用户定义的函数,然后返回一个数组的项和值从第一个数组,如果该功能允许它。

语法

阅读全文

php htmlspecialchars()函数

由于使用Javascript (通常情况下)客户端的技术,和PHP (通常情况下)服务器端技术,自从HTTP是一种“无国籍”协议,两种语言不能直接共享变量。

然而,人们可能通过变量两者之间的关系。途径之一是完成这一创造Javascript代码用PHP ,并刷新浏览器本身,通过特定变量返回的PHP脚本。下面的例子恰恰说明如何做到这一点-它使P HP代码捕获屏幕的高度和宽度,这通常是唯一可能在客户端。htmlspecialchars()函数

阅读全文

php file_get_contents函数

php file_get_contents函数,

本函数用来读取远程服务器文件的内容,这样大大的方便写采集朋友了,只要很简单的一句就可以把远程服务器的文件保存到自己的数据库,你说简单不,光说不行了我举个例子看看吧.

阅读全文

php 数组的用法

Array ( [0] => Array ( [userid] => 1 [username] => 刘振鹏 [status] => 0 [userpwd] => ) [1] => Array ( [userid] => 2 [username] => 刘鹏飞 [status] => 0 [userpwd] => ) [2] => Array ( [userid] => 3 [username] => 刘朋 [status] => 0 [userpwd] => ) [3] => Array ( [userid] => 4 [username] => admin [status] => 0 [userpwd] => ) [4] => Array ( [userid] => 11 [username] => admin [status] => 0 [userpwd] => ) [5] => Array ( [userid] => 12 [username] => admin [status] => 0 [userpwd] => ) [6] => Array ( [userid] => 13 [username] => liuzp [status] => 0 [userpwd] => ) [7] => Array ( [userid] => 14 [username] => lzp [status] => 0 [userpwd] => ) )

阅读全文

php处理ubb函数


<?php
/*
程序设计: 林建炫(飘枫设计室)
made in 陆丰 by 2007-03-07 中午
QQ: 5818500
Email: linzhenxuan@163.com
如果你使用、修改请保留该信息!
功能: Ubb类
优点: 比普通ubb多了快速Ubb配对相应的html问题。
*/
Class Cls_Ubb
{
var $type='';
        Function _htm($string)
        {
                if(!$string){return "";}
                if(ereg("<(.+)*>(.+)*</(.+)*>",$string))
                {
                        $string = eregi_replace("<","&lt;",$string);
                        $string = eregi_replace(">","&gt;",$string);
                }
                if(eregi("[(/*b)]",$string)){$this->type.="1,";}
                if(eregi("[(/*i)]",$string)){$this->type.="2,";}
                if(eregi("[(/*u)]",$string)){$this->type.="3,";}
                if(eregi("[align=([a-zA-Z]*)]",$string)){$this->type.="4,";}
                if(eregi("[fly](.+)*[/fly]",$string)){$this->type.="5,";}
                if(eregi("[move](.+)*[/move]",$string)){$this->type.="6,";}
                if(eregi("[light](.+)*[/light]",$string)){$this->type.="7,";}
                if(eregi("[SHADOW=([0-9]{1,3}),([a-zA-Z]*),([0-9]{1,})](.+)*[/shadow]",$string)){$this->type.="8,";}
                if(eregi("[url=(.+)](.+)[/url]",$string)){$this->type.="9,";}
                if(eregi("[email]([a-zA-Z0-9]{1,}@([a-zA-Z0-9]{1,}.[a-zA-Z0-9]{1,})*)[/email]",$string)){$this->type.="10,";}
                if(eregi("[em([0-9]{1,})]",$string)){$this->type.="11,";}
                if(eregi("[img](.+)*[/img]",$string)){$this->type.="12,";}
                if(eregi("[flash=*([0-9]*),*([0-9]*)](.+)*[/flash]",$string)){$this->type.="13,";}
                if(eregi("[mp=*([0-9]{1,3}),([0-9]{1,3})](.+)*[/mp]",$string)){$this->type.="14,";}
                if(eregi("[rm=([0-9]{1,3}),([0-9]{1,3})](.+)*[/rm]",$string)){$this->type.="15,";}
                if(eregi("[sound](.+)*[/sound]",$string)){$this->type.="16,";}
                if(eregi("[code](.+)*[/code]",$string)){$this->type.="17,";}
                if(eregi("[sup](.+)*[/sup]",$string)){$this->type.="18,";}
                if(eregi("[sub](.+)*[/sub]",$string)){$this->type.="19,";}
                if(eregi("[color=(.+)*](.+)*[/color]",$string)){$this->type.="20,";}
                if(eregi("[size=([0-9]{1})](.+)*[/size]",$string)){$this->type.="21,";}
                if($this->type){$this->type=substr($this->type,0,(strlen($this->type)-1));}
                return $string;
        }
       
?>

阅读全文