php笔记

<?php
?>

php输出 echo" "
?>后面不能有空格!!!
变量定义:
$name="pstree";
输出:
echo $name;//输出变量
var_dump($name);//输出数组,并打印类型和长度
print_f($name);//输出数组

$a="a";
$b="b";
printf("---%s---%s---",$a,$b);

utf-8编码 一个中文字 占3个字节
gbk编码 一个中文字 占2个字节

$arr=array("abc","def","g");

如果需要原样输出 需要在上下加上echo "<pre>"
echo "</pre>

echo $arr[1];
$arr[]="d";//自动往后加值

对象类型:
两部分组成:属性和方法
class tem{
function test(){
echo "";
}
public $name;
}

$user1 = new tem();
uer1->test();

header("content-type:text/html;charset=utf-8")//php设置字符编码,header之前不能有任何输出

资源:
//连接数据库资源`
//文件打开资源
//目标打开资源

$conn = mysql_connect("localhost","root","123");
mysql_select_db("test");
mysql_query("set names utf8");
$sql="select * from user";
$rst=mysql_query($sql);
while($row=mysql_fetch_assoc($rst))
{
echo "<h1>Id:{$row['id']}</h1>";
}

isset//变量是否存在
isset($name);返回bool;当值为null也返回false

empty://变量是否为空
以下七种为空
1.0
2.""
3."0"
4.faluse
5.array()
6.null
7.没定义

变量类型测试:
is_int($test);
is_float();
is_string();
is_bool();
is_array();
is_object();
is_resource();
is_null();
//资源和null为特殊类型
is_scalar();//测试是否为标量(int float string bool)
is_numeric();//测试是否是数字,测试整形,浮点型
is_callable();//测试是否是可调用的合法结构(函数)而不是语言结构(echo print array list);

强制类型转换
(int)$num;

删除变量
unset($test);

单引号速度快,最好用单引号

常量定义:
define("name","value");
用常量不用加$

系统定义常量:
PHP_OS //当前php所在系统
PHP_VERSION //当前php版本
__LINE__ //当前行数
__FILE__ //当前文件的绝对路径
__FUNCTION__ //在函数内知道函数名
M_PI //圆周率
__CLASS__ //在类中知道类名
__METHOD__ //在类的函数中知道函数名

@运算符:
屏蔽函数报错
$connn =@mysql_connect("localhost","root","123");

=>运算符://自定义数组下标 数组叫关联数组
$arr=array("name"=>"user1","age"=>"30");
echo "<pre>";
print_r($arr);
echo "</pre>"

echo $arr['name'];//拿出user1

结束脚本exit 或 exit("tuichu");

func_num_args();//返回参数数量;
func_get_args();//得到参数(数组)
array_sum;//数组和
return array_sum(func_get_args);

变量函数:
变量的值就是函数;
function sum($i,$j)
{
return $i + $j;
}
$a="sum";
echo $a(1,2);

globel关键字 修饰后 可以把局部变量变为全局变量
global $num;

callback:回调函数(一个函数的参数是另一个函数)

include()和require()的区别:前者找不到文件报错后继续执行,后者直接停止

php执行过程:
1.加载页面
2.语法检测(1.语法检测 2.加载函数)
3.执行脚本


数组定义:
$arr=array(1,2,3);
$arr=array("name"=>"user1","age"=>"30");

数组的遍历:
foreach($arr as $key=>$val)
{
echo "<h1>{$key}:{$val}</h1>"
}

list($key1,$key2)=$arr;
echo $key1;
echo $key2;

while($row=each($arr))
{
print_r($row);
echo "<hr>";
}

while(list($key,$val)=each($arr))
{
echo $key.$val;
echo "<hr>";
}

多维数组遍历
foreach($arr as $val)
{
if(is_array($val))
{
foreach($val as $val2)
{
echo "|--".$val2."<br>";
}
}
else
{
echo "|-".$val."<br>";
}
}

超全局数组:
$_SERVER//查看服务器信息

$_GET//获取get提交过来的数据
两个页面之间通讯:
1.表单(第一种:get方式 第二种:post方式)
<form action="" method="post">
<input type="text" name="" >
<input type="submit" value="">
</form>
2.a标签传值(get方式)

$_POST
$_REQUEST//速度慢,相当于get+post

$_FILES//文件提交
<form action="rev.php" method="post" enctype="multipart/form-data">
文件上传<input type="file" name="" id="">
<input type="submit" value="提交">
</form>

$_COOKIES
setcokies("name","user1","time()+3600","/")
名字 值 有效时间 路径

$_SESSION
session_start();
$_SESSION['name']="user1";

$GLOBALS//显示所有信息($_GET $_POST $_SERVER...等等)
$GLOBALS[_GET]

数组函数:
array_values();
array_keys();
in_array("value",$array)//判断数组中是否存在某个值
array_key_exists("key",$array);//
array_flip($arr)//交换键和值
array_reverse($arr);//翻转数组(颠倒)
array_count_values();//统计数组中所有值出现的次数
array_unique($arr)//去重
count();元素个数计数
shuffle();//打乱数组
range();//建立一个指定范围单元的数组
array_filter()//数组过滤
function odd($var)
{
return ($var%2==0);
}
$arrs=array_filter($arr,"odd");


array_map()//返回所有经过callback函数作用过后的数组
$b=array_map("test",$arr);
//处理多个数组时,须保证每个数组元素个数相同

sort();//升序 不保留key
rsort();//降序 不保留key
asort();//保留key
arsort();//保留key

ksort()//根据键值排序
krsort()//

natsort()//按自然数排序(字典序) 只能升序排,要想降序可以翻转数组reverse;
natcasesort()//忽略大小写

array_multisort();//用一个数组对另一个数组排序
$arr=array("aaa","bbbbbbbbbbbb","cc","ddddd")
1.按标题长度排序
2.把标题长度变成key
//SORT_ASC 升序
//SORT_DESC 降序
foreach($arr as $val)
{
$lens[]=strlen($val);
}
array_multisort($lens,SORT_ASC,$arr);
sort($lens);
$arr2=array_combine($lens,$arr);//前面是key 后面是value


拆分、合并、分解、结合
1.explode();
$str="a-b-c-d-e";
$arr=explode("-",$str);

2.join();//implode()
$str=implode("-",$arr);

3.array_slice();
$arr=array("aa","bb","cc","dd","ee");
$arr2=array_slice($arr,0,3);//截取arr[0]-arr[2];
//如果从后面截取array_slice($arr,-2,2);截取dd,ee
4.array_splice();
把array_slice截取的元素删除
最后可以加一个数组,表示把删除的补上

 

$arr=array_pop($a);
$arr=array_push($a,"vv");
$arr=array_shift($a)//将a的第一个单元移出并返回结果数组
array_unshift($array,$tem,$..)//在开头插入,保持顺序插入 返回int
array_merge($a,$b)//合并数组

$arr=range(A,Z);
$arr=range(1,20);
$arr=array_diff($a,$b);//对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值。

$key=array_rand($arr);//随机取一个key

array_sum($arr);


===============================================
字符串:
echo "asaa","bbb";
printf("%s",$a)//%.2f两位小数
sprintf("%s",$a)//返回一个字符串

函数:
1.去除空格和字符串填补函数
ltrim()//干掉左边空格
rtrim()//干掉右边空格
trim()//干掉两端空格
str_pad($str,number,"要补的字符串",STR_PAD_BOTH or STR_PAD_LEFT)//补字符串
str_repeat("DSADAS",3)//重复三次
strlen()

2.大小写转换
strtoupper()//大写 返回字符串
strtolower()//小写
ucfirst()//首字母大写
ucwords()//每个单词首字母大写

3.与html关联的函数

4.其他字符串函数
strrev()//翻转
number_format($number,小数点后保留几位)//number_format — 以千位分隔符方式格式化一个数字
md5()//加密成32位密码
str_shuffle("abcdef");//随机排列abcdef

与html有关的函数
nl2br("dsadsa\nffds\n");//把所有\n变成<br>;
htmlspecialchars("<div style="background=red">aaaa</div>")//转成实体,就是div模块大小于号转换一下,用于留言的时候 用户写"<h1>dasdas</h1>",可以转成&lt;h1&nt;dasdas&lt;/h1&nt 转“、<、>、

ubb标签:所有<>变成[]
//43

pathinfo()
parse_str()将字符串解析成多个变量
parse_url()


正则表达式:
1。原子
. 任意一个字符
\w 字母数字下滑线
\W 除了数字字母下划线
\d 任意数字
\D 除了数字
\s 空白字符
\S 除了空白字符
^以什么开头
$以什么结尾
\b 词边缘
\B 非词边缘
[abc] abc里面任意一个字符
[^abc] 除了abc的任意一个字符
{m} m个原子
{2,} 2个以上的原子
{2,5} 2-5个前面的原子

2。元子符
* 0个1个多个
+ 1个多个
? 0个1个
3.模式修正附

正则表达式函数:
1.preg_match()
2.preg_match_all()
3.preg_grep()
4.preg_replace($ptn,$rep,$sub)
5.preg_split()


日期函数
1.time()
2.date()
3.strtotime()
4.microtime()

date_default_timezone_set("PRC");//把时区调成中国

date参数:
Y 2013
y 13
m 03
n 3
d 05
j 5
w 0-6周日-周六
t 31 一个月为多少天
L 是否为润年
H 24小时
h 12小时
i 05分钟
s 05秒

错误处理:
1.关闭和开启报错
2.报错级别
3.报错地方

//display_error 浏览器报不报错
error_log = 错误日志文件报哪儿

gd库画图:
1.准备画布 $im=imagecreatetruecolor(500,300);
2.准备涂料 $balck=imagecolorallocate($im,0,0,0);
3.画图 imagefilledellipse($im,250,250,200,200,$white);
imagefill($im,0,0,$white);//填充画布颜色 不写默认黑色
4.输出到浏览器
header("content-type:image/png")
imagepng($im);
//imagepng($im,"test.png")//保存
5.关闭画布 imagedestroy($im);

ceil加工 2.3变成3
floor加工 2.3变成2
round 四舍五入
mt_rand(1,5)生成1-5的随机数
pi() 派

imagesetpixel($im,x,y,$color)//一个点
for($i=0;$i<1000;$i++)//加入一千个点 干扰素
{
imagesetpixel($im,mt_rand(0,500),mt_rand(0,500),$white);
}

js跳转
echo "<script>location='http://www.baidu.com'</script>";
js弹窗
<script>alert("验证码有误重新输入")</script>

 

获取图片宽度
getimagesize();

图片等比例缩放

图片缩放函数:
imagecopyresampled()
图片剪裁函数
imagecopyresampled()
图片水印函数
imagecopy();

is_dir();
is_file();
filetype();
file_exists();
filesize();

文件

文件删除:
unlink();

文件复制
copy();

rename();

新建
fopen($filename,"w");
写入
fwrite($fileresource,"ASDASDASDAS");
读取
fread($fileresource,filesize($filename))//1个字节
把指针返回到文件开头
rewind($fileresource);
模式:a写入

while(!feof($fs))//feof判断指针到没到结尾
{
$str=fread($fs,2);
echo $str."<br>";
}//一次读两个 读到结尾


文件上传
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="" id="">
<input type="submit" value="shangchuan">
</form>
</body>
</html>

<?php
echo"<pre>";
print_r($_FILES)
echo "</pre>";

$tmpfile=$_FILES['file']['tmp_name'];
$dstfile="uploads/imgs/";
if(move_uploaded_file($temfile,$dstfile))
{
echo 成功;
}
else{
echo 失败;
}
?>

mysql
\s 显示所有信息

表字段索引:
1.主键索引
2.普通索引

desc select * from t1 where id=3\G
//检测sql语句 找到id=3检索多少次 \G代表结果行列转换后输入

添加普通索引:
alter table t2 add index in_name(name);
删除普通索引:
alter table t2 drop index in_name;

mysql limit//分页技术

session技术
1.session_start();
$_SESSION['username']="user1";

2.查看SESSION
print_r($_SESSION);

3.删除SESSION
session_start();
session_unset()//清空session数组
session_destroy()//销毁session
setcookie(session_name(),"",time()-3600,"/");//删除客户端卡号

echo session_name();
echo session_id();

for in循环
var obj=new Object();
obj.name="user1";
obj.age=30;
obj.sec="nan";
for(var i in obj)
{
alert(i+"=>"+obj[i]);
}


网页目录结构
1.前台-home
2.后台-admin
3.前台入口文件-index.html
4.前后台公用文件夹-public

posted @ 2014-12-20 20:21  DuskL  阅读(287)  评论(2编辑  收藏  举报