PHP内部(内置)函数

内部(内置)函数,又称作系统函数

用户自定义的函数主要用来进行逻辑运算,而大部分的系统低层工作,还是需要系统自带的函数来完成。PHP为用户提供了丰富的系统函数,包

括文件系统函数、目录函数、数组函数、字符串函数、日期/时间函数、图像函数、MySQL数据库函数等。要想使用这些函数,直接在脚本中调用

就可以。
1、系统函数的使用
但是所有这些系统函数不是一定可以使用的,有一些函数需要插件支持的,如:图像函数,就需要GD库的支持。要想获取当前运行环境支持的函

数列表,可以编写一个小脚本来实现,代码如下所示:
phpinfo();
为了确保在运行过程中,程序不出现错误,也可以调用的函数进行测试,确定函数是否存在后,再进行下一步的操作。如:
if(function_exists("fopen")){
 echo "可以使用fopen()函数<br />";
}else{
 echo "fopen函数支持没有开启<br />";
}
注:function_exists也可用于用户自定义函数。
2、常用系统函数-字符串函数
2.1 字符串输出函数:echo、print、printf

(1)echo、print实例:略。
(2)printf,格式化字符串,并输出。
用法类似C#中的format函数,如:
$str = "Hello";
$number = 123;
printf("%s world. Day number %u",$str,$number);
echo "<br />";

$s = "string";
$t = "this is a long string";
printf("<pre>[%s]</pre><br />",$s); //输出字符串
printf("<pre>[%10s]</pre><br />",$s); //在字符串左边加空格后输出
printf("<pre>[%-10s]</pre><br />",$s); //在字符串右边加空格后输出
printf("<pre>[%010s]</pre><br />",$s); //在字符串前补0,补足10位
printf("<pre>[%10.12s]</pre><br />",$t); //输出10个字符,从字符串左边算起

2.2 字符串与数组:str_split()、chunk_split()、explode()、implode()
(1)str_split():可以把指定的字符串,按指定的长度分割,并返回一个数组,数组的单元就是分割后的字符串。如:
$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str,2);

print_r($arr1);
echo "<br />";
print_r($arr2);
echo "<br />";
注意:按字节分割,一个汉字占两个字节,当字符串中含有汉字时慎重使用。这个函数比较"废柴"!
(2)chunk_split():根据参数指定的长度,把字符串分为若干段,在每段字符串后面附上指定字符串后,重新连接为一个字符串返回。如:
$str = "这是测试字符串";
echo "<b>在字符串的指定长度后,添加默认字符串</b>";
echo "<pre>";
echo chunk_split($str,4);
echo "</pre>";
echo "<b>在字符串的指定长度后,使用“-”分割符</b>";
echo "<pre>";
echo chunk_split($str,4,"-");
echo "</pre>";
注意:按字节分割,一个汉字占两个字节,当字符串中含有汉字时慎重使用。这个函数比较"废柴"!
(3)explode():按指定的字符,分割另一个字符串,并返回一个数组。实例参考:第三天 PHP数组和流程控制语句。
(4)implode():使用指定的字符串,把一个数组连接为一个字符串。如:
$arr = array("我的","故乡","在","远方");
$str1 = implode("",$arr);
echo $str1."<br />";
$str2 = implode("|",$arr);
echo $str2."<br />";
注:implode可以用于二进制文件的操作
2.3 字符串与空格:ltrim()、rtrim()、trim(),如:
$str = " 这是一个带有空格的字符串 ";
echo "<pre>".ltrim($str)."</pre><br />"; //去左边空格
echo "<pre>".rtrim($str)."</pre><br />"; //去右边空格
echo "<pre>".trim($str)."</pre><br />";  //去两边空格
2.4 字符串比较
(1)使用"=="、"!="、"==="、"!=="进行比较。实例:略。
(2)strcmp()和strcasecmp()
$var1 = "Case";
$var2 = "case";
if(strcmp($var1,$var2)){
 echo "两个字符串相同<br />";
}else{
 echo "两个字符串不同<br />";
}//strcmp()不区分大小写
if(strcasecmp($var1,$var2)){
 echo "两个字符串相同<br />";
}else{
 echo "两个字符串不同<br />";
}//strcasecmp()区分大小写
2.5 字符串的替换与插入
(1)str_replace(),替换掉字符串中的相关字符,而产生一个新字符串。
该函数四个参数:①必选,被替换的短字符串,可以接收字符串和数组。②必选,用于替换的字符串,可以接收字符串和数组。③必选,整个字

符串④可选,一个变量名,用于返回替换次数
如:
$html = "<font size='[size]' color='[color]'>[text]</font>";
//定义一个函数,用于替换指定字符串中的字符
function strReplace($html,$size=1,$color="red",$text="这是测试字符"){
 //使用str_replace()函数替换指定字符串中的字符
 $html = str_replace("[size]",$size,$html);
 $html = str_replace("[color]",$color,$html);
 $html = str_replace("[text]",$text,$html);
 echo $html."<br />"; 
}
//测试替换字符串的函数
strReplace($html);
strReplace($html,2);
strReplace($html,3,"blue");
strReplace($html,4,"green","这是绿色的字");
//使用数组中的元素的值替换字符串,如:
$array = array("这","是","测","试");
echo str_replace($array,"","这是新测试的字符串");
echo "<br />";
//使用数组中元素的值,替换要查找数组中的元素的值,如:
$color = "red,sky,yellow,white,tea";
$search = array("sky","tea");
$replace = array("green","blue");
echo str_replace($search,$replace,$color);
echo "<br />";
//返回字符串中替换的次数,如:
$string = str_replace("测试","","这是测试,用于测试的字符串",$count);
echo "替换次数:".$count."<br />";
注:str_replace函数可用于二进制文件的替换
(2)substr_replace():在指定位置插入字符串,并返回一个新字符串。
该函数四个参数:①必选,需要插入新字符的字符串。②必选,用于插入第一个参数中的字符串③必选,规定在字符串的何处开始替换。
正数 - 在第 start 个偏移量开始替换
负数 - 在从字符串结尾的第 start 个偏移量开始替换
0 - 在字符串中的第一个字符处开始替换
④可选,规定要替换多少个字符。
正数 - 被替换的字符串长度
负数 - 从字符串末端开始的被替换字符数
0 - 插入而非替换。
如:
$var1 = "老骥伏枥,志在千里;";
$var2 = "烈士暮年,壮心不已。";
echo substr_replace($var1,$var2,0)."<br />";    //输出结果:烈士暮年,壮心不已。
echo substr_replace($var1,$var2,0,strlen($var1))."<br />"; //输出结果:烈士暮年,壮心不已。
echo substr_replace($var1,$var2,20,0)."<br />"; //输出结果:老骥伏枥,志在千里;烈士暮年,壮心不已。
echo substr_replace($var1,$var2,10,8)."<br />"; //输出结果:老骥伏枥,烈士暮年,壮心不已。;
echo substr_replace($var1,$var2,-10,16)."<br />";//输出结果:老骥伏枥,烈士暮年,壮心不已。
echo substr_replace($var1,$var2,10,0)."<br />"; //输出结果:老骥伏枥,烈士暮年,壮心不已。志在千里;
(3)字符串替换函数的应用:实现简单的模板系统。如:
//定义一个存储模板文件的字符串
$html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>[PageTitle]</title>
<style type="text/css">
<!--
.title {
 font-family: "宋体";
 font-size: 24px;
 font-weight: bold;
}
-->
</style>
</head>

<body>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="5">
  <tr>
    <td height="38"><div align="center" class="title">[title]</div></td>
  </tr>
  <tr>
    <td height="24">[detail]</td>
  </tr>
</table>
</body>
</html>';
//定义一个函数,用于替换模板中的字符,并输出模板内容
function template($html,$title,$detail){
 $html = str_replace("[PageTitle]",$title,$html);
 $html = str_replace("[title]",$title,$html);
 $html = str_replace("[detail]",$detail,$html);
 return $html;
}
//定义一个变量,存储文章内容
$detail = "&nbsp;&nbsp;&nbsp;&nbsp;根据str_replace()函数替换字符串的原理,可以实现简单的模板系统。...";
//使用函数输出模板
echo template($html,"关于简单模板的使用",$detail);
2.6 字符串与HTML
(1)把字符串转换为HTML实体形式:htmlspecialchars()和htmlentities(),如:
//定义一段包含HTML代码的字符串
$html = '<table width="90%" border="0" align="center" cellpadding="0" cellspacing="5">
  <tr>
    <td height="38"><div align="center">测试HTML代码</div></td>
  </tr>
  <tr>
    <td height="24">&nbsp;&nbsp;&nbsp;&nbsp;测试HTML代码测试HTML代码测试HTML代码。。。</td>
  </tr>
</table>';
$string = "<font>包括HTML格式的字符串</font>";
echo "<b>输出带有特殊字符的HTML代码</b><br />";
echo $html;
echo "<br />";
echo $string;
echo "<hr><b>使用htmlspecialchars()函数转换特殊字符</b><br>";
echo $html = htmlspecialchars($html);
echo "<br><b>使用htmlentities()函数转换特殊字符</b><br>";
echo htmlentities($string);
echo "<br />";
注:htmlentities()对汉字也会进行转换。htmlspecialchars()只转换:&、'、"、>、<5个字符。
(2)把HTML实体转化成特殊字符:htmlspecialchars_decode()和html_entitiy_decode(),如:
//定义一段包含HTML代码的字符串
$html = '&lt;table width=&quot;90%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot;

cellspacing=&quot;5&quot;&gt;
  &lt;tr&gt;
    &lt;td height=&quot;38&quot;&gt;&lt;div align=&quot;center&quot;&gt;测试HTML代码&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td height=&quot;24&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;测试HTML代码测试HTML代码测试HTML代码。。。

&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;';
$string =

"&lt;font&gt;&deg;&uuml;&Agrave;&uml;HTML&cedil;&ntilde;&Ecirc;&frac12;&micro;&Auml;&times;&Ouml;&middot;&ucirc;&acute;&reg;&lt;/fo

nt&gt;";
echo "<b>HTML实体形式</b><br>";
echo $html;
echo "<br>";
echo $string;
echo "<hr><b>使用htmlspecialchars_decode()函数解码后的HTML</b><br>";
echo $html = htmlspecialchars_decode($html);
echo "<br><b>使用html_entity_decode()函数解码后的HTML</b><br>";
echo html_entity_decode($string);
echo "<br />";
注:(2)与(1)中的函数功能是相反的。
(3)换行符的转换:nl2br()
$testStr = "含有\n的字符串";
echo $testStr;
echo "<br />";
$testStr = nl2br($testStr);
echo $testStr;
echo "<br />";
2.7 字符串与加密
(1)MIME base64编码和解码:base64_encode()和base64_decode()
//定义一个字符串
$string = "用于进行编码的字符串";
echo "<b>原字符串:</b>".$string."<br>";
//使用base64_encode()函数对字符串进行编码
$str = base64_encode($string);
echo "<b>使用base64_encode()编码的字符串:</b>".$str."<br>";
$str = base64_decode($str);
echo "<b>使用base64_decode()解码的字符串:</b>".$str."<br>";
(2)编码和解码URL,如:
echo "<b>显示URL传递过来的变量:</b>";
echo $_GET["urlstr"];
//定义一个变量
$var="带有-空格_和word及特殊符号<>的变量";
echo "<br><b>使用urlencode()编码字符串:</b>";
echo $enStr = urlencode($var);
echo "<br><b>使用urldecode()解码字符串:</b>";
echo $deStr = urldecode($var);
echo "<br><a href='?urlstr=".$enStr."'>传递URL变量<a><br />";
注:点击链接从地址栏中可以看到urlencode()函数编码的方式,与HTML表单提交的变量编码的方式是一样的。
(3)MD5加密:md5()和md5_file()。使用md5函数,可以返回一个字符串的md5值,而使用md5_file()函数,则可以计算一个文件的md5值。md5

函数有两个参数:①必选,需要进行md5加密的字符串②可选,布尔值,默认为False。当为TRUE时,返回要计算字符串的16位的二进制值。如


//定义一个字符串
$string = "测试用字符串";
//返回1个32位的md5值
$md5_32 = md5($string);
echo "{$string}的32位MD5值是:".$md5_32;
//返回1个16位的二进制编码
$md5_16 = md5($string,TRUE);
echo "<br>{$string}的16位的二进制编码是:".$md5_16;
//定义一个指向文件名的变量
$file = "test.txt";
//取得文件的MD5值
$md5_file = md5_file($file);
echo "<br>{$file}的MD5值是:".$md5_file."<br />";
2.8 其他字符串函数
(1)计算字符串长度:strlen()。如:
$str = "一个 字符串";
echo "此字符串的长度为:".strlen($str)."<br />";
注意:一个汉字的长度是2
(2)ASCII码与字符串:ord()和chr()。
ord()用于返回字符的ASCII码,chr()用于返回ASCII码对应的字符。如:
echo ord("a")."<br />";
echo chr("98")."<br />";
(3)HTML标签控制:strip_tags()。
使用strip_tags()可以过滤掉字符串中的HTML标签,并返回这个字符串。如:
$html = "<div><font color='red'>HTML内容</font></div>";
//去除字符串中所有HTML标签
$str = strip_tags($html);
echo $str."<br />";
//允许保留指定的HTML标签
$str = strip_tags($html,"<font></font>");
echo $str."<br />";
(4)字母大小写的转换,如:
$string = "Returns The uPPercased strING OR LOWerCASED STRing";
//使用strtoupper()函数,把字符串中的字母转换为大写
$newString = strtoupper($string);
echo $newString."<br />";
//使用strtolower()函数,把字符串中的字母转换为小写
$newString = strtolower($string);
echo $newString."<br />";

3、常用系统函数-时间日期函数
PHP中所有函数都是UNIX纪元的,即从1970年1月1日开始的。日期是从这个时候开始的秒数。当一个函数调用从这时候计的秒数时,就把它当作(timestamp)时间戳。 
3.1 date()
定义:string date(string format,inieger timestamp) 
该函数返回一个表示时间的字符串,是由string format 控制的。 如: 
print(date("Y年m月d日 l")."<br />");//输出当前年月日星期
print(date("Y年m月d日",60*60*24*365*1)."<br />");//输出1971年1月1日. 
//若timestamp为空时,或不写时,表示使用当前时间一刻timestamp. 
//表示年份的控制符: Y---四位的年份 y---两位的年份 
//表示月份的控制符: m---从1-12的月份 F---英文月份名 M---简写的月份名 
//表示日号的控制符: d---前面有0的月份中日期 j--前面没有0的日号 
//表示星期的控制符: l--英文星期 D--简写的星期 
//表示小时的控制符: h--从1到12小时 H---从0到23的小时 
//表示上下午的控制符 a ---am或pm A---AM或PM 
//表示分钟的控制符: i---取值00-59 
//另外的 z--一年中的日期
3.2 getdate()
定义:array getdate(integer timestamp)
返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。如:
print_r(getdate()); 
echo "<br />";
3.3 checkdate()
定义:boolean checkdate(integer month,integer day,integer year) 
该函数检查日期是否合法.如:
if(checkdate(13,30,2010)){
 echo "2010-13-30是合法日期格式<br />";
}else{
 echo "2010-13-30不是合法日期格式<br />";
}
3.4 time()
定义:integer time() 
该函数获得当前时间戳.如: 
echo time()."<br />";
3.5 mktime()
定义:integer mktime(integer hour,integer minutes,integer seconds,integer month, integer day,integer year) 
该函数返回给出日期的时间戳,即从1970年1月1日到现在的秒数. 
如某参数超出范围,该函数也可以解释它,如13月即为第二年的一月. 如: 
print("50个小时后为:"); 
print(date("Y年m月d日 H时i分",mktime(date("H")+50)));
echo "<br />";

3.6 microtime()
定义:string microtime() 
该函数返回一个字符串,由当前时间的微秒数 空格 从1970年开始的秒数,返回值的单位都是秒。如:
echo microtime();
echo "<br />";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值