学习PHP——函数(字符串函数和日期)

PHP函数

PHP 有超过 1000 个内建的函数,还有自定义函数。

函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。

一、函数的定义和调用

用户定义的函数声明以单词 “function” 开头:

function functionName( 参数1,参数2,……) {
  //被执行的代码;
  return 返回值;
}

函数名能够以字母或下划线开头(而非数字)。
函数名对大小写不敏感。

在调用函数时需要向函数传递参数,被传入的参数称为 实际参数
函数定义的参数称为 形式参数

二、函数间传递参数

函数间传递参数的形式:

1.按值传递

函数名(实参);//传值,将实参传递给形参

2.按引用传递(传地址)

函数名(&实参);//传值,将实参的地址传递给形参

3.默认参数

定义形参时,可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并指定默认值。
注意:可选参数必须放置参数列表末尾,且必须指定默认值!

三、函数返回值

使用return语句返回值;
注意:函数定义时不需要声明返回值。

<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";   //15
echo "7 + 13 = " . sum(7,13) . "<br>";     //20
echo "2 + 4 = " . sum(2,4);      //6
?>

四、PHP标准函数库

1.变量函数库

一些常用的变量函数:在这里插入图片描述

2.字符串函数

一些重要的字符串函数:

(1)strlen()函数和mb_strlen()函数

返回字符串的长度,以字符计。

语法:strlen(string 字符串 )

但是,一个中文占 3 个字符数。
可以使用 mb_strlen() 设置指定编码输出中文字符个数:

<?php
echo mb_strlen("中文字符",'utf-8');  // 输出 4
?>
(2)substr()函数

返回子字符串。

语法:string substr (string 原字符串, int start [,int length])
strart :必须,指定起始位置,从 0 开始。
length:可选,指定长度。

(3)strstr()函数

截取原字符串中,从包含标识处到结尾的字符。

语法:string strstr (string 原串, string 标识)

<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; 
?>
(4)md5()函数

计算字符串的 MD5 散列。

语法:string md5 (string 原串, bool raw_output)

<?php
echo md5("船长");    #输出:a436878ee2927527f007235bbfdcf77c
?> 
(5)explode()函数

按标识拆分字符串。返回拆分后的数组array

语法:explode (string separator, string string [, int limit])

separator :必须,拆分标识。

string :必须,原字符串。

limit:可选。规定所返回的数组元素的数目。
可能的值:
大于 0 - 返回包含最多 limit 个元素的数组。
小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组。
0 - 会被当做 1, 返回包含一个元素的数组。

(6)strpos() 函数

用于检索字符串内指定的字符或文本。
因此,可用于判断字符在字符串中是否存在

字符串中首字符的位置是 0 而不是 1。

语法:strpos("原来字符串","指定字符串");
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE

<?php
echo strpos("Hello world!","world");    #输出:6
?>

mb_strpos() 按字处理,strpos() 按字符处理。

<?php
echo strpos('开始23测试ceshi', '测试') ;     //8
echo mb_strpos('开始23测试ceshi', '测试');   //4
?>
(7)str_word_count() 函数

对字符串中的单词进行计数。
语法:str_word_count(string);

<?php
echo str_word_count("Hello world!"); // 输出 2
?>
(8)str_replace() 函数

用一些字符串替换字符串中的另一些字符。
语法:str_replace("要替换的string","替换后的string","原string");

<?php
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
?>
(9)输出函数

echo()、print()、printf()……
print_r() :除打印字符串之外,主要用来打印数组。

<?php
$foot = array('苹果', '午餐', '世界');
print_r($foot);   //Array ( [0] => 苹果 [1] => 午餐 [2] => 世界 )
?>
(10)大部分字符串函数
函数描述
addcslashes()返回在指定的字符前添加反斜杠的字符串。
addslashes()返回在预定义的字符前添加反斜杠的字符串。
bin2hex()把 ASCII 字符的字符串转换为十六进制值。
chop()删除字符串右侧的空白字符或其他字符。
chr()从指定的 ASCII 值返回字符。
chunk_split()把字符串分割为一系列更小的部分。
convert_cyr_string()把字符串由一种 Cyrillic 字符集转换为另一种。
convert_uudecode()解码 uuencode 编码字符串。
convert_uuencode()使用 uuencode 算法对字符串进行编码。
count_chars()返回有关字符串中所用字符的信息。
crc32()计算字符串的 32 位 CRC。
crypt()单向的字符串加密法(hashing)。
echo()输出一个或多个字符串。
explode()分割字符串,把字符串打散为数组。
fprintf()把格式化的字符串写入到指定的输出流。
get_html_translation_table()返回由 htmlspecialchars() 和 htmlentities()
使用的翻译表。
hebrev()把希伯来文本转换为可见文本。
hebrevc()把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>
hex2bin()把十六进制值的字符串转换为 ASCII 字符。
html_entity_decode()把 HTML 实体转换为字符。
htmlentities()把字符转换为 HTML 实体。
htmlspecialchars_decode()把一些预定义的 HTML 实体转换为字符。
htmlspecialchars()把一些预定义的字符转换为 HTML 实体。
implode()返回由数组元素组合成的字符串。
join()implode() 的别名。
lcfirst()把字符串的首字符转换为小写。
levenshtein()返回两个字符串之间的 Levenshtein 距离。
localeconv()返回本地数字及货币格式信息。
ltrim()移除字符串左侧的空白字符或其他字符。
md5()计算字符串的 MD5 散列。
md5_file()计算文件的 MD5 散列。
metaphone()计算字符串的 metaphone 键。
money_format()返回格式化为货币字符串的字符串。
nl_langinfo()返回特定的本地信息。
nl2br()在字符串中的每个新行之前插入 HTML 换行符。
number_format()以千位分组来格式化数字。
ord()返回字符串中第一个字符的 ASCII 值。
parse_str()把查询字符串解析到变量中。
print()输出一个或多个字符串。
printf()输出格式化的字符串。
quoted_printable_decode()把 quoted-printable 字符串转换为 8 位字符串。
quoted_printable_encode()把 8 位字符串转换为 quoted-printable 字符串。
quotemeta()引用元字符。
rtrim()移除字符串右侧的空白字符或其他字符。
setlocale()设置地区信息(地域信息)。
sha1()计算字符串的 SHA-1 散列。
sha1_file()计算文件的 SHA-1 散列。
similar_text()计算两个字符串的相似度。
soundex()计算字符串的 soundex 键。
sprintf()把格式化的字符串写入变量中。
sscanf()根据指定的格式解析来自字符串的输入。
str_getcsv()把 CSV 字符串解析到数组中。
str_ireplace()替换字符串中的一些字符(对大小写不敏感)。
str_pad()把字符串填充为新的长度。
str_repeat()把字符串重复指定的次数。
str_replace()替换字符串中的一些字符(对大小写敏感)。
str_rot13()对字符串执行 ROT13 编码。
str_shuffle()随机地打乱字符串中的所有字符。
str_split()把字符串分割到数组中。
str_word_count()计算字符串中的单词数。
strcasecmp()比较两个字符串(对大小写不敏感)。
strchr()查找字符串在另一字符串中的第一次出现。
(strstr() 的别名。)
strcmp()比较两个字符串(对大小写敏感)。
strcoll()比较两个字符串(根据本地设置)。
strcspn()返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。
strip_tags()剥去字符串中的 HTML 和 PHP 标签。
stripcslashes()删除由 addcslashes() 函数添加的反斜杠。
stripos()返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr()查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen()返回字符串的长度。
strnatcasecmp()使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。
strnatcmp()使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。
strncasecmp()前 n 个字符的字符串比较(对大小写不敏感)。
strncmp()前 n 个字符的字符串比较(对大小写敏感)。
strpbrk()在字符串中查找一组字符的任何一个字符。
strpos()返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrchr()查找字符串在另一个字符串中最后一次出现。
strrev()反转字符串。
strripos()查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos()查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strspn()返回在字符串中包含的特定字符的数目。
strstr()查找字符串在另一字符串中的第一次出现(对大小写敏感)。
strtok()把字符串分割为更小的字符串。
strtolower()把字符串转换为小写字母。
strtoupper()把字符串转换为大写字母。
strtr()转换字符串中特定的字符。
substr()返回字符串的一部分。
substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
substr_count()计算子串在字符串中出现的次数。
substr_replace()把字符串的一部分替换为另一个字符串。
trim()移除字符串两侧的空白字符和其他字符。
ucfirst()把字符串中的首字符转换为大写。
ucwords()把字符串中每个单词的首字符转换为大写。
vfprintf()把格式化的字符串写到指定的输出流。
vprintf()输出格式化的字符串。
vsprintf()把格式化字符串写入变量中。
wordwrap()打断字符串为指定数量的字串
3.日期/时间函数

一些重要的日期/时间函数。

(1)Date() 函数

把时间戳格式化为更易读的日期和时间。
语法
date(format,timestamp);

format :必需。规定时间戳的格式。
点击此处,查看format字符列表

timestamp :可选。规定时间戳。默认是当前时间和日期。
注释:时间戳是一种字符序列,它表示具体事件发生的日期和事件。

●获得简单的日期
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。

一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天

其他字符,比如 “/”, “.” 或 “-” 也可被插入字符中,以增加其他格式。

<?php
echo "今天是 " . date("Y/m/d") . "<br>";
echo "今天是 " . date("Y.m.d") . "<br>";
echo "今天是 " . date("Y-m-d") . "<br>";
echo "今天是 " . date("l");
?>

●自动版权年份

<?php
echo © 2010-<?php echo date("Y")
?>

●获得简单的时间
常用于时间的字符:
h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)

<?php
echo "现在时间是 " . date("h:i:sa");
?>
(2)date_default_timezone_set()函数

设置时区。

date_default_timezone_set("Asia/Shanghai");
(3) mktime()函数

返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。

语法:mktime(hour,minute,second,month,day,year);

<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
//输出:创建日期是 2015-06-10 09:12:31am
?>
(4)strtotime()函数

用于把字符串转换为 Unix 时间。

语法:strtotime(time,now);

<?php
$d=strtotime("10:38pm April 15 2015");
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
//输出:创建日期 2015-04-15 10:38:00pm

$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
//输出:2019-10-12 12:00:00am

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
//输出:2019-10-12 12:00:00am

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
//输出:2020-01-11 02:17:52pm
?>
(5)checkdate() 函数

用于验证格利高里日期(Gregorian date),验证日期的有效性。
语法:checkdate(month,day,year);

<?php
echo checkdate(7, 2, 2118); // 有效日期为 True
?> 
(6)time()函数

返回当前时间的 Unix 时间戳,并格式化为日期:

<?php
$t=time();
echo($t . "<br>");   
echo(date("Y-m-d",$t));

#例如输出:1570775240  2019-10-11
?>
(7)大部分日期函数
函数说明
checkdate()验证格利高里日期。
date_add()添加日、月、年、时、分和秒到日期。
date_create_from_format()返回根据指定格式进行格式化的新的 DateTime 对象。
date_create()返回新的 DateTime 对象。
date_date_set()设置新日期。
date_default_timezone_get()返回由所有的 Date/Time 函数使用的默认时区。
date_default_timezone_set()设置由所有的 Date/Time 函数使用的默认时区。
date_diff()返回两个日期间的差值。
date_format()返回根据指定格式进行格式化的日期。
date_get_last_errors()返回日期字符串中的警告/错误。
date_interval_create_from_date_string()从字符串的相关部分建立 DateInterval。
date_interval_format()格式化时间间隔。
date_isodate_set()设置 ISO 日期。
date_modify()修改时间戳。
date_offset_get()返回时区偏移。
date_parse_from_format()根据指定的格式返回带有关于指定日期的详细信息的关联数组。
date_parse()返回带有关于指定日期的详细信息的关联数组。
date_sub()从指定日期减去日、月、年、时、分和秒。
date_sun_info()返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
date_sunrise()返回指定日期与位置的日出时间。
date_sunset()返回指定日期与位置的日落时间。
date_time_set()设置时间。
date_timestamp_get()返回 Unix 时间戳。
date_timestamp_set()设置基于 Unix 时间戳的日期和时间。
date_timezone_get()返回给定 DateTime 对象的时区。
date_timezone_set()设置 DateTime 对象的时区。
date()格式化本地日期和时间。
getdate()返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gettimeofday()返回当前时间。
gmdate()格式化 GMT/UTC 日期和时间。
gmmktime()返回 GMT 日期的 UNIX 时间戳。
gmstrftime()根据区域设置对 GMT/UTC 日期和时间进行格式化。
idate()将本地时间/日期格式化为整数。
localtime()返回本地时间。
microtime()返回当前时间的微秒数。
mktime()返回日期的 Unix 时间戳。
strftime()根据区域设置对本地时间/日期进行格式化。
strptime()解析由 strftime() 生成的时间/日期。
strtotime()将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time()返回当前时间的 Unix 时间戳。
timezone_abbreviations_list()返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list()返回带有所有时区标识符的索引数组。
timezone_location_get()返回指定时区的位置信息。
timezone_name_from_abbr()根据时区缩略语返回时区名称。
timezone_name_get()返回时区的名称。
timezone_offset_get()返回相对于 GMT 的时区偏移。
timezone_open()创建新的 DateTimeZone 对象。
timezone_transitions_get()返回时区的所有转换。
timezone_version_get()返回时区数据库的版本。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值