1 addcslashes() 函数返回在指定字符前添加反斜杠的字符串
$str = addcslashes("A001 A002 A003","A");
echo($str);// \A001 \A002 \A003
stripcslashes() 函数删除由 addcslashes() 函数添加的反斜杠。
2 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符 单引号(')双引号(")反斜杠(\)NULL
$str = "What's your name?";
echo addslashes($str);//What\'s your name?
stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。
3 bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。
$str = "Shanghai";
echo bin2hex($str) . "
";
echo pack("H*",bin2hex($str)) . "
";
4 移除空白字符或其他预定义字符
rtrim() 函数移除字符串右侧的空白字符或其他预定义字符。
ltrim() 函数移除字符串左侧的空白字符或其他预定义字符。
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
chop() 函数移除字符串右端的空白字符或其他预定义字符。
$str = "Shang hai";
echo trim($str,'hai');//Shang
如果不传预定义字符:则包括以下字符
"\0" - NULL
"\t" - 制表符
"\n" - 换行
"\x0B" - 垂直制表符
"\r" - 回车
" " - 空格
5 加密 md5(string,raw) ,sha1(string,raw)
$str = 'password';
echo md5($str,FALSE); // 默认 32 字符十六进制数
echo md5($str,TRUE); // 原始 16 字符二进制格式
echo sha1($str,FALSE); // 默认 40 字符十六进制数
echo sha1($str,TRUE); // 原始 20 字符二进制格式
6 数组与字符串相互转换 explode,implode
$str1 = 'I am Tom';
$arr1 = explode(' ', $str1);
print_r($arr1); // Array ( [0] => I [1] => am [2] => Tom )
$arr2 = ['I','am','Tom'];
$str2 = implode(' ', $arr2);// join()是implode的别名
echo $str2; // I am Tom
7 大小写转换 strtoupper,strtolower
$str = 'abCDefg';
echo strtoupper($str); // ABCDEFG
echo strtolower($str); // abcdefg
8 字符串查找
// stripos (string,find,start) - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
// strpos(string,find,start) - 查找字符串在另一字符串中第一次出现的位置(区分大小写)
// start 可选。规定开始搜索的位置。
echo stripos("You love China, China","china").PHP_EOL; // 9
echo strpos("You love China, China","china").PHP_EOL; // 1
// strripos(string,find,start) - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
// strrpos(string,find,start) - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
echo strripos("You love china, China","china").PHP_EOL; // 34
echo strrpos("You love china, China","china").PHP_EOL; // 23
// stristr(string,search,before_search) 函数搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分(不区分大小写)
// strstr(string,search,before_search) 函数搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分(区分大小写)
// 必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符
// 可选。默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分
echo stristr("You love china, China","China").PHP_EOL; // china, China
echo strstr("You love china, China","China").PHP_EOL; // China
// strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
echo strrchr("You love china, China","china").PHP_EOL; // China 不区分大小写
9 比较
// strcasecmp(string1,string2) 比较两个字符串(不区分大小写)
// strcmp(string1,string2) 比较两个字符串(区分大小写)
// strncasecmp(string1,string2,length) 函数比较两个字符串(不区分大小写)
// strncmp(string1,string2,length) 函数比较两个字符串(区分大小写)
echo strcasecmp("China","china").PHP_EOL; // 0
echo strcmp("China","china").PHP_EOL; // -1
echo strncasecmp("China","china1",5).PHP_EOL;// 0
echo strncmp("China","china1",5).PHP_EOL; // -1
10 编码与解码 url函数
// convert_uuencode() 函数使用 uuencode 算法对字符串进行编码。
// convert_uudecode() 函数对 uuencode 编码的字符串进行解码。
$str = "Hello world!";
$uuencode = convert_uuencode($str);
echo $uuencode.PHP_EOL; //,2&5L;&\@=V]R;&0A `
echo convert_uudecode($uuencode); // Hello world!
// urlencode urldecode rawurlencode rawurldecode
// urlencode 将空格则编码为加号(+)rawurlencode 将空格则编码为加号(%20)
// base64_encode,base64_decode
$str = 'name=zhangsan&age=22';
parse_str($str);// 对应参数拆分成变量
echo $name.PHP_EOL; //zhangsan
$url = 'http://www.baidu.com?name=zhangsan&age=22';
$url_arr = parse_url($url); // 拆分成数组
print_r($url_arr).PHP_EOL; //Array ( [scheme] => http [host] => www.baidu.com [query] => name=zhangsan&age=22)
$url_param = [
'name' => $name,
'age' => $age,
];
print_r($url_param).PHP_EOL; // Array ( [name] => zhangsan [age] => 22)
$quert_url = 'http://www.baidu.com?'.http_build_query($url_param); //http://www.baidu.com?name=zhangsan&age=22
//使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串
print_r($quert_url).PHP_EOL; // http://www.baidu.com?name=zhangsan&age=22
11 输出 echo,print
// echo 可输出多个字符串变量,print只能输出一个字符串变量
// echo的效率相对比较快!
// print 有返回值,成功,返1,false,返0. echo无返回值
$a = 'a';
$b = 'b';
echo $a,$b; //ab
echo ($a),($b); //ab
print $a; //a
echo ($a,$b); //报错
print $a,$b; //报错
print ($a,$b); //报错
print ($a),($b); //报错
12 序列化与反序列化serialize,unseriasize
// serialize() 序列化 unserialize() 反序列化
$a = '12345';
$arr = ['a' => 1,'b' => 2];
$str = serialize($arr);
echo $str; // a:2:{s:1:"a";i:1;s:1:"b";i:2;} a表示array,2是数组的长度,里面s表示值是一个string,'a'是键名,i:1表示索引是1
print_r(unserialize($str)); // Array ( [a] => 1 [b] => 2 )
echo serialize($a);// s:5:"12345"; s表示string,5是字符串的长度,'12345'是字符串的值
13 字符串创建
// PHP 支持 4 种方式来创建一个字符串:单引号、双引号、heredoc(相当于双引号) nowdoc(相当于单引号)
// 双引号可以解析变量,转义字符 单引号不解析变量,转移字符(除了 \ 和 ' );
// 单引号的效率比双引号要高(双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)
$a = 'a';
$b = 'b';
$str1 = '$a';
$str2 = "$a";
echo $str1.PHP_EOL; // $a
echo $str2.PHP_EOL; // a
echo '\\a'.PHP_EOL; // \a
echo '\'a'.PHP_EOL; // 'a
echo "{$a}b"; // 变量和后面的字符串区分开
// 3. heredoc 语法结构
// 与双引号字符串相似。结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号;标记之间的变量可以被正常解析,但是函数则不可以。常用在输出包含大量 HTML 文档的时候。
echo <<< PHP
{$a}bcd
PHP
.'ef'.PHP_EOL; // abcdef 拼接字符串必须换行
echo <<< 'PHP'
{$a}bcd
PHP
.'ef'.PHP_EOL; // {$a}bcdef 拼接字符串必须换行
14 字符串长度 strlen和mb_strlen
echo strlen('我爱中国').PHP_EOL; // 12
echo mb_strlen('我爱中国').PHP_EOL; // 4
15 截取与替换字符串substr和substr_replace,substr_count
// substr(string,start,length)
// string必需。规定在字符串的何处开始。
// 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾开始的指定位置开始 0 - 在字符串中的第一个字符处开始
// length 可选。规定被返回字符串的长度。默认是直到字符串的结尾。
// 正数 - 从 start 参数所在的位置返回的长度 负数 - 从字符串末端返回的长度
$str = 'china';
echo substr($str, 1,3).PHP_EOL; // hin 从第二个位置截取4个字符
echo substr($str, 1,-3).PHP_EOL; // h
// substr_replace(string,replacement,start,length) 把字符串的一部分替换为另一个字符串。
echo substr_replace($str,'ok',1,0).PHP_EOL; // cokhina 添加
echo substr_replace($str, 'abcde', 0).PHP_EOL; // abcde 替换
echo substr_replace($str, '',3).PHP_EOL; // chi 删除
// substr_count(string,substring,start,length) 函数计算子串在字符串中出现的次数。
echo substr_count('abcabcd','a').PHP_EOL; // 2
echo substr_count('abcabcd','a',1).PHP_EOL; // 1
// substr_compare(string1,string2,startpos,length,case) 从指定的开始位置比较两个字符串
// startpos 开始的索引 case FALSE - 默认。区分大小写 TRUE不区分大小写
echo substr_compare('china ok', 'china', 0).PHP_EOL; // 3
echo substr_compare('china ok', 'china', 0,5).PHP_EOL; // 0
echo substr_compare('china ok', 'China', 0,5).PHP_EOL; // 1
echo substr_compare('china ok', 'China', 0,5,TRUE).PHP_EOL; // 0
16 str_shuffle() 函数随机打乱字符串中的所有字符。
17 strrev() 函数反转字符串。
18 进制转换函数
// Dec:十进制
// Hex:十六进制
// Oct:八进制
// Bin:二进制
// bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。
echo bindec('10010').PHP_EOL; //2 -> 10
echo bin2hex('china').PHP_EOL; //2 -> 16
echo octdec('010').PHP_EOL; // 8 -> 10
echo decbin(10).PHP_EOL; // 10 -> 2
echo decoct(10).PHP_EOL; // 10 -> 8
echo dechex(10).PHP_EOL; // 10 -> 16
echo hex2bin("6368696e61").PHP_EOL; // 16 -> 2
echo hexdec("china").PHP_EOL; // 16 -> 10
// .任意进制转换的base_convert(string $number, int $frombase, int $tobase); 函数:
echo base_convert('china',16,2); // 16 -> 2
// chr() 函数从指定的 ASCII 值返回字符。
echo chr(61) . "
"; // 十进制
echo chr(061) . "
"; // 八进制值
echo chr(0x61) . "
"; // 十六进制值
19 超全局变量
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问
$_SERVER 系统环境变量,是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_REQUEST 用于收集HTML表单提交的数据。
$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
$_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
$_FILES 主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量 $_FILES 来取得。
name type size tmp_name error
$_FILES 超级全局变量包含通过POST方法向服务器上传的数据的有关信息。这个超级全局变量与其他的变量有所不同,它是一个二维数组,包含5个元素。
$_SESSION $_COOKIE 用于会话控制
$_ENV 服务器端环境变量
$_SERVER['SERVER_ADDR'];// 服务器ip
$_SERVER['REMOTE_ADDR'];// 浏览器ip
20 标签
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签