通常我们需要在服务器端调用PHP程序处理数据后输出到页面以字符串形式显示。
在PHP中定义字符串有三种方式。
单引号
''号内定义的字符串不会对潜在的变量进行解析,转义字符也不会解析而原样输出,适用于没有转义字符串和动态变量的情况。如下
<?php#单引号定义字符串 $str = '我用单引号定义了一个字符串'; $str2 = '这个是我的另外一个单引号字符串'; #输出 echo $str,$str2; #由于echo是一种语言结构 支持多变量之间用,号隔开输出 效率快 echo $str.$str2; #当然也可以用.运算符将左右两边的字符串进行拼接输出 不过需要进行额外的运算 $str3 = '\r\n定义了一个转义字符,原样输出'; echo $str3;?>
单引号内有转义字符将会原样输出。
双引号
双引号内定义的字符串避免了单引号定义的两种情况,但是会增加额外的开销,得根据实际情况来使用。
<?php$str = "我是一个双引号字符串变量"; $str2 = " 我放在双引号内部 变量会正常解析 "; $str3 = "我添加几个转义字符撑场面\n\r\t"; echo "{$str}{$str2}{$str3}"; #{}是为了明确告诉PHP环境 里面是一个变量 同时也为了更直观的查找?>
除了上面说到的我们可以用.点号运算符拼接字符串之外, 在处理需要拼接有一定格式的长字符串时我们可以调用格式化字符串函数整理。
我要格式化一段HTML字符串输出到网页。如下
<?php$title= '我是大标题'; $name = '商品名称'; $desc = '商品的描述'; $href = 'http://'.'www.leidu.com'.'?id='; $id = 5; $html = sprintf('%s%d%s%s%s',$href,$id,$title,$name,$desc); echo $html;?>
定界符
想象一下如果在拼接字符串的过程中有大量的字符串需要转义和变量解析.拼接起来会怎么样?有没有一种可以将字符串原样输出的呢?这时候就需要用到定界符。
定界符开头需要用<<< 标识符
结尾要用<<<; 整一行前面不能有空格
中间是你的字符串内容 支持变量解析 如
<?phpecho <<< ETO 我是一个定界符包括起来的字符串{$name}{$name2}里面可以包括单引号'单引号内容',里面也可以包括双引号,"双引号内容",还能包括html标记 <<<;?>
除了拼接字符串外我们还需要对字符串做处理。系统已经定义了大量的高效处理PHP字符串的函数。
substr($str,$statr,$len) 从$start位置开始截取$str字符串$len个长度返回 $start从0开始
strlen($str) 求取字符串长度
sprintf($format,$var,.....) 格式化字符串 第一个参数是格式化形式 之后接受可变参数值 与需要格式化的内容一一对应
nl2br($str) 将字符串中的换行符转换成html的换行符
strtolower($str) 将字符串全部转换成小写
strtoupper($str) 将字符串全部转换成大写
ucwords($str) 首字符大写
strstr($str,$substr) 从$str中获取$substr子串第一次出现位置起后面的字符串
strpos($str,$substr,$offset) 从查找$str的偏移量$offset(默认为0,从头开始)查找$substr出现的位置
str_replace($find,$replace,$content) 返回从$content中将$find字符串替换为$replace的新字符串