总结:这节课程主要学习的是一些常见函数的用法
在函数记忆的同时需要注意参数和函数的前后排列顺序:大致是(主体,参照函数),特殊的记住。
<?php
header("Content-Type: text/html; charset=utf-8");
// 1. 数组排序方法总结
// 2. 字符串长度计算
// 3. 字符串与数组之间的转换
// 4. 字符串的查找与替换
echo '<h3>array</h3>';
//数组排序
/*
正序:
1.sort(&$arr,$flag)按值升值排列,键名重置
2.asort(&$arr,$flag)按值升值排列,键名保留
3.ksort(&$arr,$flag)按值升值排列,适合于关联数组,键值对应关系不变
反序:
1. rsort(&$arr, $flag):对数组逆向排序
2. arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系
3. krsort(&$arr, $flag):对数组按照键名逆向排序
自定义回调函数进行排序:
usort(&$arr,function($a,$b){#code})
*/
$arr = ['id'=>5,'name'=>'wuming','course'=>'php','grade'=>60];
asort($arr);
//var_dump($arr);
$arr1 = [10, 4, 22, 99, 35, 18];
usort($arr1, function($a, $b) {
$res = $a - $b;
if ($res == 0) {
return 0;
} else if ($res > 0) {
return true;
} else {
return false;
}
});
print_r($arr1);
echo'<hr/>';
echo '<p>string length</p>';
//1.strlen($str)
//2.mb_strlen($arr,$encoding)
$siteName = 'php中文网';
$encoding = mb_internal_encoding();
echo '内部字符编码集: ',$encoding,'<br>';
echo '<p>字符串函数(二):比较运算</p><hr color="green">';
/**
* 1.strcmp($str1, $str2):二进制安全字符串比较
* 2.strncmp($str1, $str2, $length):比较开头指定长度的是否相待
* 3.strcasecmp($str1, $str2):二进制安全字符串比较,不区分大小写
* 4.strncasecmp($str1, $str2):二进制安全字符串比较,不区分大小写
* 5.strspn($str,$mark,$start,$length):获取匹配遮罩的起始子字符串的长度
* 6.strcspn($str,$mark,$start,$length):获取不匹配遮罩的起始子字符串的长度
*/
$str1 = 'php中文网';
$str2 = 'PHP中文网';
//1.strcmp($str1, $str2):字符串比较,相等返回0,大于返回>0,否则返回<0
echo strcmp($str1, $str2) == 0 ? '相等' : '不相等', '<br>';
echo '<p>字符串函数(三):字符串与数组之间的转换</p><hr color="green">';
/**
* 1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
* 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
* 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
*/
$str = 'html,css,jquery,php,mysql,thinkphp';
print_r(str_split($str,5));
print_r(explode(',',$str));
echo '<p>字符串函数(四):html与字符串之间的转换</p><hr color="green">';
/*
addslashes($str):为了数据库查询语句在某些字符前加上反斜线转义
stripslashes($str):功能与addslashes()相反,去掉字符串中的转义反斜线字符
htmlspecialchars($str,FLAG):将特殊字符转换为 HTML 实体
&->&"=>"'->&apos/' < < > >
strip_tags($str,$allow)从字符串中去除HTML和PHP标记
*/
$str = <<< 'NOWDOC'
<h4>PHP课程介绍</h4>
<ol>
<li>'PHP'基本语法&案例</li>
<li>"PHP"的数据库操作</li>
<li>\PHP面向对象编程</li>
</ol>
NOWDOC;
echo $str;
//strip_tags($str,$allow)从字符串中去除HTML和PHP标记
//$str5 = strip_tags($str); //输出的是去掉所有标签的纯文本
// $str = strip_tags($str,'<h4>'); //保留<h4>标签,其它的删除
// echo $str;
echo '<p>字符串函数(五):删除或填充指定内容</p><hr color="green">';
/**
* 1.ltrim($str,$mask):从左边删除空格或指定字符
* 2.rtrim($str,$mask):从右边删除空格或指定字符
* 3.trim($str,$mask):从左右边删除空格或指定字符
* 4.str_pad($str,$length,$mark,CONST):使用特定字符将字符串填充到指定长度
* 可使用三个常量指定方向: STR_PAD_LEFT/STR_PAD_RIGHT/STR_PAD_BOTH,默认用空格
* 5.chunk_split($str, $length,[$end]):将字符串按大小切成小块,可指定分割符
*/
//4.str_pad($str,$length,$mark,CONST):使用特定字符将字符串填充到指定长度
$str1 = 'www.php.cn';
echo strlen($str1),'<br>';
echo str_pad($str1, 20, '*', STR_PAD_RIGHT),'<br>'; //默认向右填充
echo '<p>字符串函数(六):查找与替换</p><hr color="green">';
/**
* 1.strpos($str1,$str2, $offset)查找$str2在$str1中首次出现的位置
* 2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
* 如果确定$str2是$str1的子串,推荐使用strpos(),速度更快
* 3.str_replace($str1, $str2, $str3, $num):子串替换,$num是替换次数
* 4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串
*/
$str = 'www.php.cn';
//1.strpos($str,$needle, $offset)查找字符串首次出现的位置
echo strpos($str, 'p'),'<br>'; //默认从头开始查找
echo strpos($str, 'p', 5),'<br>'; //从索引5开始查找
//2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
echo strstr($str, 'php'),'<br>'; //返回子串及后面部分
echo strstr($str, 'php', true),'<br>'; //参数true,会返回子串前面部分
echo '<hr>';
//3.str_replace($str1, $str2, $str3, $num):子串替换,
echo str_replace('www','http://www',$str), '<br>';