PHP字符串、日期和时间

一、字符串函数

1.格式化字符串,使用printf()

输出到屏幕:printf()

输出到变量:sprintf()

提示:两个函数使用方法一样。

1.1 数据类型转换

printf("This is my number:%o",55);//This is my number:67

转换类型以%开头,后面紧跟字母代表的类型。

注意:在格式控件字符串中可以有多个%,但第二个参数的数目个数必须与%的个数一致。


类型指定符
指定符 说明
d以十进制数显示参数
b以二进制显示一个整数
c以对等ASCII显示一个整数
f以浮点数显示一个整数
o以8进制显示一个整数
s以字符串显示参数
x以一个小写十六进制显示一个整数
X以一个大写十六进制数显示一个整数

1.2 填充字符(指定长度,长度不足用特定字符填充)

printf("%04d",36);//输出少于4位,将在前面添加0
//prints 0036
printf("% 4d",36);//输出少于4位,将在前面加空格
//prints  36
printf("%'x4d",36);//除0和空格外,其它填充字符前面必须加单引号
//prints "xx36"

//提示:浏览器不会显示多个空格,可以在输出的外围添加<pre>标记来强制显示空格和新行。
echo  "<pre>The     spaces     will be visible</pre>";

1.3 指定字符串输出长度

echo "<pre>\n";
printf("%20s\n","Books"); //默认右对齐,不足20位,前置补空格。
printf("%20s\n","CDs");
//左对齐:在长度前加减号左对齐
printf("%-20s\n","Left aligned");
echo "</pre>";
1.4 指定精度(四舍五入)

printf("%.2f",5.3333);
//prints "5.33"
echo "\n";
printf("%.2f",5.3353);
//prints "5.34"
1.5 指定参数显示顺序

$dates=array(array('mon'=>12,'mday'=>25,'year'=>2011),
    array('mon'=>1,'mday'=>23,'year'=>2012)
);
$format=include("local_format.php");//如果要改变显示格式,只需改变此文件
foreach ($dates as $date){
    printf("$format",$date['mon'],$date['mday'],$date['year']);
}

//local_format.php 文件内容
//return "%02d/%02d/%d<br/>";//mm/dd/yyyy
return "%2\$02d/%1\$02d/%3\$d<br/>";//dd/mm/yyyy

//2\$:第二个参数占位符

1.6 将格式化的结果存储到变量

保留2位小数,并将结果存储到$cash变量中

$cash=sprintf("%.2f",21.334454);
echo "You have \$$cash to spend.";
// prints "You have $21.33 to spend."

2.1 字符串就是字符的一个数组,我们可以象访问数组的元素一样访问单个字符。

$test='phpcoder';
echo $test[0];//prints "p"
echo $test[4];//prints "o"

2.2 strlen()获取字符串的长度。一个汉字占3个长度

2.3 strstr(源字符串,查找的子字符串),获取从子符串开始到结尾的全部字符串,找不到则返回false

//比较时区分大写小
echo strstr("pAB7","AB");//prints "AB7"
//不区分大小写
echo stristr("pAB7","ab");//prints "AB7"

//是否包含子字符串
$membership="pAB7";
if(strstr($membership,"AB")){
    echo "<p>Your membership expires soon!</p>";
}

2.4 strpos(源字符串,查找的子字符串) ,获取子字符串的索引

//获取子字符串的索引,找不到则返回false
echo strpos($membership,"xy");//prints 4
2.5 substr(字符串,开始索引,长度) 截取子字符串
$test="phpcoder";
echo substr($test,3)."<br/>";//prints "coder"
echo substr($test,3,2)."<br/>";//prints "co"
//注意:如果第二个参数为负数,则索引从末尾开始计算,即从末尾开始取字符
$test="pierre@wanadoo.fr";
if($test=substr($test,-3)==".fr"){
    echo ".fr";
}

2.5 strtok(源字符串,分隔字符串),拆分字符串

$test="http://www.google.com/search?";
$test.="hl=en&ie=UTF-8&q=php+development+books&btnG=Google+Search";
$delims="?&";//分隔符可包含多个任意字符
$word=strtok($test,$delims);//第一次调用,并返回找到的第一个分解
while (is_string($word)){//为什么测试返回类型?因为有多个分隔符,
//如果字符串中两个分隔符在一起时,当遇到第一个分隔符时,会导致返回一个空字符串。
    if($word){
        echo $word."<br/>";
    }
    $word=strtok($delims);//第二次调用只需传分隔符字符串
}
2.6 trim(),ltrim(),rtrim(),删除字符串空格

2.7 strip_tags(源字符串,需要保留的标记),删除字符串中的标记

$string="<p>\"I <em>simple</em> will not have it,\" <br/>said Mr Dean.</p><p><strong>The end.</strong></p>";
echo strip_tags($string,"<br/><p>");//仅保留"<br/><p>"标记,其它标记全部删除
echo strip_tags($string);//删除全部HTML标记。

2.8 substr_replace(源字符串,插入的新字符串,删除开始索引,删除的字符长度) ,用新的字符替换源指定位置的字符

$membership="mz11xyz";
echo substr_replace($membership,"89",2,2);//prints "mz89xyz" 替换2个字符
echo "\n";
echo substr_replace($membership,"89",2,1);//prints "mz891xyz" 只替换源字符串中一个字符
echo "\n";
echo substr_replace($membership,"89",2);//prints "mz89" 不带长度参数,为删除位置后的全部字符

2.9  str_replace($search,$replace,$source)  替换字符串

注意:参数可以是数组或字符串。

3.0 大小写转换

strtolower()  全部小写

strtoupper() 全部大写

ucwords() 每个单词首字母大写

ucfirst() 第一个字符串的首字母大写

3.1 字符串换行

//将字符串中换行符\n转换成<br/>标记
$str="one line\n";
$str="another line\n";
echo nl2br($str);

//手动将文本换行
$string="As usual you will find me at http://www.witteringonaboutit.com/";
$string.="chat/eating_green_cheese/forum.php. Hope to see you there!";
echo  wordwrap($string,24,"<br/>\n");
echo  wordwrap($string,24,"<br/>\n",1);//强制按24个字符换行
//注意:必须带第三个参数,否则在浏览器中不会换行。

3.2 explode()将字符串拆分到数组中

$start_date="2012-02-19";
$date_arrary=explode("-",$start_date);
echo($date_arrary[0]);//prints "2012"

二、日期和时间函数

2.1 time()得到当前日期的时间戳

2.2 getdate(时间戳) 返回日期信息的关联数组。不带参数为当前时间戳的日期。

注意:设置默认时区,如果不设置,则得到的时间为错误。

修改php.ini文件

date.timezone=PRC

修改php.ini后重启Apache

或者在代码获时间前增加代码:

date_default_timezone_set(‘PRC’);

2.3 date(格式字符串,时间戳) 格式化时间戳

2.4 mktime(时,分,秒,月,日,年) 创建时间戳

2.5 checkdate() 检测日期。UNIX时间戳是从1970年1月1日开始,此前的日期都是无效的(负的)时间戳



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值