例子:
- $url = "https://bbs.rainmeter.cn";
- $str = substr($url, -12);
- echo $str;
- rainmeter.cn
于是研究一下substr()函数。
substr()函数返回字符串的一部分。
语法:substr(string,start,length)
string 必需。规定要返回其中一部分的字符串。
start 必需。规定在字符串的何处开始。
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
length 可选。规定要返回的字符串长度。默认是直到字符串的结尾。
正数 - 从 start 参数所在的位置返回
负数 - 从字符串末端返回
注释:如果 start 是负数且 length 小于等于 start,则 length 为 0。
比如:$str = substr($url, -12, -5);
结果:rainmet。
即length为-5时,从字符串末端返回-5个,即从字符串末端开始有5个不返回。
也就解释了,如果 start 是负数且 length 小于等于 start,则 length 为 0。因为不返回的个数大于等于要返回的个数。
$str = substr($url, -12, -13);的结果为null。
- $some_str = "abc,def,hij,0,klm,nop,qrs";
- $s = strtok($some_str,',');
- while($s){
- echo $s."<br/>";
- $s = strtok(',');
- }
- var_dump(!'0'); //由于'0'==false,因此在拆分到0的地方退出循环
关于strtok()函数,不太理解$s = strtok(',');这条语句。查看了一些资料,最后决定也把它当成一条规则来看待。
使用strtok()函数,如果要得到下一个被分割的字符串,那么就要再调用一次strtok()函数,并且参数只是分隔符。(因为每一次调用strtok()函数,它的函数内部的指针会向下移动一个位置,加入2个参数是将函数的内部的指针初始化到第一个位置。)
如果不再次调用strtok()函数,或是参数是字符串和分隔符,那么就会一直得到第一个分割的字符串。
parse_str()函数把查询字符串解析到变量中。
被查询字符串的格式:uname=zhangsan&age=33&sex=boy
- $url = "https://www.nothing.com.cn/admin/index.php?uname=abc&a=add";
- $arr = parse_url($url);
- echo "<pre>";
- print_r($arr);
- echo $arr['host'];
- echo "<br/>".parse_url($url,PHP_URL_PATH); //PHP_URL_SCHEME、PHP_URL_HOST、PHP_URL_QUERY
- echo $arr['path'];
parse_url()函数:解析 URL,返回其组成部分
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
数组中可能的键有以下几种:
scheme - 如 http
host
port
user
pass
path
query - 在问号 ? 之后
fragment - 在散列符号 # 之后
echo "<pre>"; 语句:直接显示,不转义。(也许有更好的解释)
这个语句会影响之后的数组的显示形式。
- $str = "蛾儿雪柳黄金缕";
- echo "<a href='26.php?h=".urlencode($str)."'>点击</a><br/>"; //这段代码包含在26.php中
- echo $_GET['h'];
//这段代码包含在26.php中 是指 echo $_GET['h']; 这段代码。
<a> 标签的 href 属性用于指定超链接目标的 URL。
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。(好复杂的解释。。。)
这一段是HTML中的解释。看了HTML中a href的用法,a href = "......"
php中的用法,a href = '......'
urlencode()函数的作用:一种在URL的查询部分中使用字符串,如将变量传递到下一个页面的便捷方式。
下一个要研究的是htmlentities()函数。