PHP字符串

程序中大部分数据是字符序列或字符串!

引用字符串常量

变量插值

当用双引号或heredoc定义字符串字面量时,字符串服从变量插值规则。即在字符串中用变量的值来替换变量的名。

echo "$who was $where";
echo "You are the {$n}th person";

单引号扩起来的字符串

不解析,只接受两个转义序列 \’ 和 \ \ 。

双引号扩起来的字符串

转义序列

符号转义
\”双引号
\n换行符
\r回车符
\t制表符
\反斜杠
$美元符号
{左大括号
}右大括号
[左中括号
]右中括号
\0 至 \777用八进制数表示ASCII码
\x0 至 \xFF用十六进制数表示ASCII码

未知转义序列,如\c将被忽略。

here文档

$dialogu = <<< Anywords
aaa
bbb
Anywords;

空白被保留,结尾终止符前字符串会被移除。

输出字符串

echo

echo结构把字符串输出到PHP生成的HTML页面中。

echo "Printy";
echo "First", "Second", "Third";

print()

print()函数发送一个值(它的参数)给浏览器。可判断。

printf()

通过替换模板中的值(格式化字符串)所生成的字符串进行输出。

参数1:格式字符串。
参数2:要替换进来的值。

格式字符串中的替换:%+格式修饰符+类型说明符。

注:%%得到百分号。

格式修饰符顺序

填充说明符+正负号+字符最小数目+浮点精确度。

填充说明符:0,空白符,单引号 ’ 前缀字符。(默认使用空白符填充)

正负号:字符串,-强制左对齐;数字,+强制正数与+一起打印。

字符最小数目:如果小于此数,将根据 填充说明符 与 正负号 进行填充。

浮点精确度:.+数字,小数点后多少位被显示。

类型说明符

说明符参数显示
%显示%
b整数二进制数
c整数值对应的字符
d整数十进制数
e双精度数科学计数法
E双精度数科学计数法,所有字母大写
f浮点数当前语言环境格式显示
F浮点数格式不变
g双精度数科学计数法 或 浮点数,使用短的
G双精度数大写科学计数法 或浮点数,短风格
o整数八进制
s字符串不变
u无符号整数十进制
x整数小写十六进制
X整数大写十六进制

sprintf:赋值不打印。

print_r() 和 var_dump()

print_r()

字符串和数字直接打印,数组以键值对的列表形式出现,以Array开头。

$a = array('name' => 'Fred', 'age' => 35, 'wife' = 'Wilma');
print_r($a);

Array
(
    [name] => Fred
    [age] => 35
    [wife] => Wilma)

注:在数组中使用print_r()将移动内部的迭代器指针到数组的最后一个元素的位置。

对象以Object开头。

class P
{
    var $name = 'nat';
}
$p = new P;
print_r($p);

Object
(
    [name] => nat)
print_r(true); // "1"
print_r(false); // ""
print_r(null); // ""

var_dump()

var_dump(true);
var_dump(false);
var_dump(null);
var_dump(array('name' => "Fred", 'age' => 35));
class P
{
    var $name = 'Nat';
}
$p = new P;
var_dump($p);

bool(true);
bool(false);
bool(null);
array(2){
    ["name"] =>
    string(4) "Fred"
    ["age"] =>
    int(35)
}
object(p)(1) {
    ["name"] =>
    string(3) "Nat"
}

访问单个字符

$string = 'Hello';
for ($i = 0; $i < strlen($string); $i++) {
    print($string{$i});
}

整理字符串

删除空白符号

$trimmed = trim(string [, charlist]);
$trimmed = ltrim(string [, charlist]);
$trimmed = rtrim(string [, charlist]);

默认删除的字符

字符ASCII码意义
“”0x20空格
“\t”0x09制表符
“\n”0x0A换行符
“\r”0x0D回车符
“\0”0x00空字节
“\x0B”0x0b纵向制表符

例:

$record = "  Fred\t35\t  \n";
$record_target = "Fred\t35\t";
$record = trim($record, " \r\n\0\x0B");
$this->assertEquals($record_target, $record);

改变大小写

函数返回值
strtolower()全部小写
strtoupper()全部大写
ucfirst()首字符大写
ucwords()每个单词首字符大写

编码和转义

HTML、Web地址(URL)、数据库命令都是字符串,他们要求不同的字符按不同的方法转义。

HTML

HTML特殊字符以实体字符标示。

对所有特殊字符进行实体引用

函数参数返回
htmlentities()input, [quote_style], [charset]将HTML字符转换成对应的实体(空格符除外),包括<,>,&,重音符。
参数用途
quote_style‘与”是否转义,ENT_COMPAT(默认)转”,ENT_QUOTES都转,ENT_NOQUOTES都不转
charset字符集,默认ISO-8859-1

只对HTML语法字符实体引用

函数:htmlspecialchars()
参数:同htmlentities()

实体转换
&&
"
'
<<
>>

例:

$source = "aa <p> bb. </p>";
$result = htmlspecialchars($source);
echo $source; // aa bb.
echo $result; // aa <p> bb. </p> <p>没被解析,直接在html页面显示了出来

实体转换回原始文本

htmlspecialchars_decode()

删除HTML标签

strip_tags()
第二个参数为保留标签,例如 ‘< b>’。

提取元标签

获得元标签数组。

$metaTages = get_meta_tags('http://www.example.com');
echo $metaTags['author']; 

$array = get_meta_tags(filename [, use_include_path]);

URL

只应编码协议与域名后的URL。

RFC 3986 编码和解码

$output = rawurlencode($input);
$decode = rawurldecode($encoded);

空格编码为%20 .

查询字符串编码

urlencode();
urldecode();

空格编码为+,通过表单或cookie传送时会自动解码,常用于生成查询字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值