学习手记-php

K:Key(知识点), V:Value(具体内容)

start from: 2017-03-02

------------------------------------------------------------------------

K: LAMP
V: Linux OS + Apache Web Server + MySQL Database + PHP

K: int被转为float的潜在危机
V: int最大值为2147483647,如果再增大,会自动变为float类型.

K: 字符串3种定义方式
V:
//1.常量(单引号)
$s='hello world!';
//2.包含变量(双引号)
$v="I would say: $s";
//3.多行(定界符)
$m=<<<EOD
Say you,
Say me,
Say we together...
EOD;

K: 可变变量
V:
$product='phone';
$$product="apple"; // == $phone.

K: 预定义变量
V: var_dump($_COOKIE,$_ENV,$_FILES,$_GET,$_GLOBALS,$_POST,$_REQUEST,$_SERVER,$_SESSION);// _GLOBALS,_SESSION undefined...

K: 引用
V:
$a='111';
$b=&$a;
$c=$a;
var_dump($a,$b,$c); //111,111,111

$a='222';
var_dump($a,$b,$c); //222,222,111

K: 变量的2种销毁方式
V: $a=NULL; unset($a);

K: 常量的定义
V: define("PI",3.14159265); var_dump(PI);

K: 魔术常量
V: var_dump($__LINE__,$__FILE__,$__FUNCTION__,$__CLASS__,$__METHOD__);//为啥都是undefined...

K: 执行运算符
V: 反引号(``),用来执行OS命令

K: 错误控制运算符
V: "@". 放在表达式之前,忽略其错误。if track_erros=true, error会记在$php_errormsg中。通常用于忽略网站一些无用的警告信息。

K: 注释
V: 单行://, #. 多行:/**/ 

 

K: HTML输出格式化

V: <pre></pre>

 

K: 数组
V:
1.创建
数值数组:$arr=array('hi1','hi2','hi3');
关联数组:$arr=array('你'=>'hi1','我'=>'hi2','他'=>'hi3');
or:
$arr['你']='hi1';
$arr['我']='hi2';
$arr['他']='hi3';
多维数组:$arr=array('你'=>array(1,2,3),'我'=>array(1,2),'他'=>array(2));

2.增删
增:$arr[]='hi4'; array_push($arr,'hi5','hi6');
删:unset($arr[2]); array_pop($arr);

3.遍历
//for:
$cnt=count($arr);
for($i=0;$i<$cnt;$i++){
$j=$i+1;
echo "第{$j}个元素是:$arr[$i]<br>";
}

//foreach
foreach($arr as $key=>$val){
$j=$key+1;
echo "第{$j}个元素是:$val<br>";
}

4.排序
sort:升序,asort:按值升序,ksort:按key升序,rsort:降序,arsort:按值降序,krsort:按key降序,
shuffle:随机,array_reverse:倒序

5.合并与拆分
array_merge($arr1,$arr2): 连续追加,同键覆盖;
array_slice($arr,offset,length): offset/length为负表示从右端起

K: 文件上传
V:
<pre>
<?php
if(isset($_FILES['myfile'])){
$uploadfile=basename($_FILES['myfile']['name']);

if($_FILES['myfile'])

if(move_uploaded_file($_FILES['myfile']['tmp_name'],$uploadfile)){
echo "文件上传成功!<br>";
}else{
echo "文件上传失败!<br>";
}
echo "<br>-------------------------------<br>";
print_r($_FILES);
die();
}
</pre>
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="300" />
<input type="file" name="myfile">
<input type="submit" value="提交" />
</form>

K: Session
V:
1. 启用
<?php seesion_start();?>
启用配置指令:seesion.auto_start
2. 存储
$_SESSION['love']='三毛';
3. 读取
$love = $_SESSION['love'];
4. 销毁
unset($_SESSION['love']);
session_destroy();
5. 获取session id
session_start();
$sid=session_id();
echo $sid;
session_destroy();

K: Cookie
V:
1. 创建
setcookie("mycookie['username']","szx1999");
setcookie("mycookie['password']","1234");
setcookie("mycookie['remember']",true);
2. 读取
if(isset($_COOKIE['mycookie'])){
foreach($_COOKIE['mycookie'] as $key=>$val){
echo "mycookie[{$key}]='{$val}'<br>";
}
}
3. 有效期
setcookie('username','szx'); //浏览器关闭后失效
setcookie('username','szx',0); //浏览器关闭后失效
setcookie('username','szx',time()+60*60); //1小时后失效
setcookie('username','szx',mktime(12,0,0,1,1,2020)); //2020-1-1 12:00失效
setcookie('username','szx',time()-3600); //立即失效
4. 有效路径
设为/,表示该cookie在全域有效;设为/mypath/,表示只在域名的/mypath/目录及其子目录下有效。
5. 删除
setcookie('mycookie','');

K: header
V:
1. 重定向
header('Location:http://www.baidu.com');
die();
2. 强制更新网页
<?php>
header("Expires: Mon, 26 Jul 1997 08:00:00 GMT"); //告诉浏览器此页面的过期时间,只要是过去的日期即可
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); //告诉浏览器此页面最后更新时间是当天,目的就是强迫获取最新内容
header("Cache-Control: no-cache, must-revalidate"); //不使用缓存
header("Pragma: no-cache"); //兼容HTTP1.0协议
?>
3. 限制访问
header("status: 404 Not Found");

K: 目录与文件
V:
1. 创建目录
mkdir("parentPath/myPath",0700,TRUE);// mode=TRUE时,如果父目录不存在则会自动创建;否则会报错
2. 打开目录
$handle=opendir('./');//指定当前目录
$file=readdir($handle);//读取目录,返回目录中下一个文件的文件名
3. 关闭目录
closedir($handle);
4. 删除目录
rmdir($dirname);
5. 创建文件/打开文件
fopen("myfile.txt","r");//只读,指针指向头
fopen("myfile.txt","w");//写入,指针指向头并将文件大小截为零。不存在则创建之。
6. 读取文件
$handle=fopen($filename,"rb") or die("Unable to open file!");//只读,二进制
$contents=fread($handle,filesize($filename));
echo fgets($handle);//读单行
echo fgetc($handle);//读单个字符
fclose($handle);
或者:
echo file_get_contents("myfile.txt");
7. 写入文件
$handle=fopen($filename,'a+');//写入方式,指针指向尾
fwrite($handle,"new content");
fclose($handle);
php5+使用file_put_contents(),相当于fopen-fwrite-fclose.
file_put_contents("myfile.txt","hello world!");
8. 修改属性mode
chmod("myfile.txt",0744);//所有者有所有权限,其他人只读
mode由4个数字组成:
第一个数字永远是0;
第二个数字规定owner的权限;
第三个数字规定owner所属用户组的权限;
第四个数字规定其他所有人的权限。
每个数字都是下面3个值的某种组合:
1-执行权限,2-写权限,4-读权限。
9. 删除文件
unlink($filename);
10. 检查End-Of-File
while(!feof($handle)){
echo fgets($handle)."<br>";
}

 

posted on 2017-03-02 17:31  等不到来世  阅读(142)  评论(0)    收藏  举报

导航