课时109 list()函数的语法结构
1.list在等号左边,等号后边只能是一个数组.
2.list:将数组中的元素转为变量使用
3.list:数组中有几个元素,list中就有几个参数,而且参数一定是变量. 不过参数可以少, 那么数组的元素就没有了.
4.只能将索引数组转为变量,而且必须是连续的.
5.可以在list参数中通过空项选择性的接收数组中的元素.
课时110 each()函数的特性
1.each()只是一个函数,参数就是一个数组作为参数,返回的值也是一个数组.
2.返回的值是一个数组,数组固定有4个元素,而且下标也是固定的. 1(值) value(值) 0(下标) key(下标)
3.ecah()只处理当前的元素,将当前的元素转为数组信息.处理完后,指针向下一个元素移动.
4.如果指针已经在结束位置,如果再使用each()获取元素,返回false.
课时111 使用list( )、each( )和while循环遍历数组 1.
$arr = array("sce","zaj","vicky","coin");
while( list($key,$value) = each($arr) ){
echo "{$key} => {$value} <br>"; }
reset($arr); //重置指针
echo "<hr>";
$arr = array("sce","zaj","vicky","coin");
while( list($key,$value) = each($arr) )
{ echo "{$key} => {$value} <br>"; }
课时112 使用数组的内部指针控制函数遍历数组
1.next():指针移动下一位 prev():指针向前移动一位 end():指针移动到最后 reset():指针移动到开头 key():取得当前的key current():取得当前的value
课时113 PHP超全局数组(预定义变量)概述
超全局数组:在PHP的脚本中,已经声明完的变量,你可以直接使用,变量的名字已经规定好了.
1.$_SERVER 服务器变量
2.$_ENV 环境变量
3.$_POST HTTP POST变量
4.$_GET HTTP GET变量
5.$_REQUEST REQUEST变量
6.$_FILES HTTP上传文件变量
7.$_COOKIE
8.$_SESSION 会话变量
9.$GLOBALS
一.数组(关联数组),和自己声明的数组是一样的操作方式
二.全局: 三:超: 每个预定义数组都有独特的能力
课时114 服务器变量$_SERVER和环境变量$_ENV
// 定义一个函数getIP()
function
getIP()
{
global
$ip
;
if
(
getenv
(
"HTTP_CLIENT_IP"
))
$ip
=
getenv
(
"HTTP_CLIENT_IP"
);
else
if
(
getenv
(
"HTTP_X_FORWARDED_FOR"
))
$ip
=
getenv
(
"HTTP_X_FORWARDED_FOR"
);
else
if
(
getenv
(
"REMOTE_ADDR"
))
$ip
=
getenv
(
"REMOTE_ADDR"
);
else
$ip
=
"Unknow"
;
return
$ip
;
}
// 使用方法:
echo
getIP();
getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。 但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。 else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。 如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。 这种情况下已经确认客户端没有使用代理服务器,从而通过 else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); 这两行语句获得客户端的IP地址也是真实的IP地址。
php中getenv()和$_SERVER的用法区别:
getenv 取得系统的环境变量,环境变量的格式为name=value.
语法: string getenv(string varname);
返回值: 字符串 函数种类: PHP 系统功能
内容说明
若正确取得环境变量 varname,则返回变量值.失败则返回 false.
下例可以取得用户浏览器所在机器的网址
<?php
$ip = getenv(“REMOTE_ADDR”);
?>
$_SERVER是服务器超级全局变量数组 用$_SERVER[‘REMOTE_ADDR‘]同样可以获取到客户端的IP地址.
二者的区别在于,getenv不支持IIS的isapi方式运行的php
2. function getip() { if(!empty($_SERVER["HTTP_CLIENT_IP"])){ return $_SERVER["HTTP_CLIENT_IP"]; }else if(!empty($_SERVER["HTTP_X_FORWARD_FOR"])){ return $_SERVER["HTTP_X_FORWARD_FOR"]; }else if(!empty($_SERVER["REMOTE_ADDR"])){ return $_SERVER["REMOTE_ADDR"]; }else{ return "noknow"; } } echo getip();
课时115 PHP超全局数组介绍1
1.$_GET 接收用户通过url向服务器传的参数
2.$_POST 接收用户通过HTTP协议向服务器传的参数
课时116 PHP超全局数组介绍2
课时117 PHP常用数组函数的分类
课时118 PHP数组中与键和值有关的操作函数1
1.array_value() 使数组变成索引数组,返回数组所有的值
2.array_keys() 使数组变成索引数组,返回数组所有的键名
课时119 PHP数组中和键值搜索相关的函数2
1.in_array(值,数组,[true]) 判断值是否在数组中.区分大小写,第三个参数添加后连类型都得相等.
2.array_search() 在数组中搜索给定的值,如果成功返回键值
3.array_key_exists() 按给定键名查找是否存在数组中
4.isset() 如果数组里是空的, 它会返回假. 所以不够准确.
课时120 PHP数组中与键和值有关的操作函数3
1.array_filp()
把一个数组的键和值交换,生成一个新的数组.如果值有重复,那么后面的值会把前面的内容给覆盖.这个函数的原始数组里存的只能是字符串和整数.
2.array_reverse()
倒序数组,把原来的数组顺序逆序,然后生成新数组.
第二个参数如果是true,那么虽然是逆序,但是键值对还是原来的. (必须是索引数组才看的出来)
课时121 PHP数组中统计数组元素的个数与唯一性的函数
1.count() 如果用来计算字符串,只会输出 int 1,所以不能用来计算字符串.字符串用strlen();
2.count(数组,[1])可以递归计算数组,也就是计算多维数组,只要第二个参数传一个1就可以了, 默认0是不计算.
3.array_count_values()
计算数组中所有值出现的次数
4.array_unique()
把数组中的值重复的给删除,只保留第一次出现的.
课时122 PHP使用回调函数处理数组的函数array_filter()
1.array_filter()
用回调函数过滤数组中的单元. 默认时元素中被认为是假的值都过滤掉. 添加第二个参数后可以定义过滤的方式,用回调函数.
课时123 PHP使用回调函数处理数组的函数array_walk()
1.array_walk()
对数组中的每个成员应用用户函数.第一个参数是数组,第二个参数是操作, 可以是一个回调函数.
课时124 PHP使用回调函数处理数组的函数array_map()
1.array_map(回调函数,数组)
将回调函数作用到给定数组上.
arrar_may(null,$arr,$brr); 会使数组变成二维数组.使$arr,$brr合并.
课时125 PHP中的冒泡(起泡)排序算法
<?php
$arr = array(0,1,2,3,4,5,6,7,8);
function maopao($arr){
$len = count($arr)-1;
for($i = 0; $i < $len; $i++){
for($j = 0;$j < $len-$i;$j++){
if($arr[$j] < $arr[$j+1]){
$tmp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
return $arr;
}
课时126 PHP 二分法进行快速排序的原理