php学习笔记
一、PHP简介
1.PHP
含义:超文本预处理器;
优势:跨平台(操作系统)、语法简单、开源免费。
版本:最新PHP7,目前使用的为PHP5.6;
二、环境搭建/服务搭建
环境搭建:操作系统+web服务+语言+数据库。
1、后台语言一定是运行在服务器上的。
2、web服务:Apache、IIS、Tomcat;
3、服务器的组成:
1.操作系统(Linux)=>单纯做服务器Linux多些,开发
windows多一些。
2.web服务:Apache
3.语言:PHP
4.数据库:Mysql(开源免费)
4.服务器搭建:手动搭建、集成环境(wampserver,phpstudy,xmapp...)
5.位置环境:phpstudy\www \wamp64\www\ htdocs
如何访问http://服务器IP地址的名称。
eg:http://locallhost/ http://127.0.0.1/ http://192.168.1.121/
<?php ?>是php的开始和结束的标签,所有的PHP代码都是写在标签中的。
echo表示输出的意思。
echo只能输出数字和字符串。
var_dump()可以输出变量的详细信息。
注释符:有单行注释//和# 多行注释是/**/
良好的代码习惯:1.中文分文件夹存储
2.文件夹命名使用英文单词,忌中文
3.文件命名也同样使用英文单词,并有一定的规则。
4.变量命名、样式命名、函数的命名采用驼峰命名法
5.前端方面:代码结构。不要使用属性缩写。
6.xhtml要求标签必须结束。
7.代码注释要占整个代码的三分之一。
6.变量的申明:$+变量名=值
7.php和js一样也是弱类型语言。不需要指定变量的数据类型。
变量的数据类型是由所附的值来决定的。
变量的命名规则:数字、字母、下划线组成,不能数字开头,可以使用关键字
但是不建议使用。
变量的类型:4种(整型(int),浮点型(小数:float/double),
字符串(string),布尔(bool))
2种复合类型:数组(array),对象(object)
2种特殊类型:资源(resource),空(null)
8.字符串用双引号和单引号的引起来的内容。
单引号和双引号的区别
单引号是只能输出字符串而双引号输出的是可以解析的变量和字符串。
9.流程控制:条件控制:if,if...else ,switch...case,条件?条件为真:
条件为假;循环控制。
10.条件true/false,数字,字符串,数组,对象,null...
11.递增、递减
12.自定义函数:
function 函数名(){
return 返回值
}
13.函数调用:函数名()
函数的意义是重复使用。减少代码的冗余度。
.是连接符是变量与字符之间的拼接。
在函数里面不能直接引用全局变量,只有传参数。
在其参数前加上&表示传值引入。是相当于传入地址。要同时绑在一起。
传值相当于复制与粘贴,只是值相同。不用&符号时传入到函数里情况。
14.申明一个数组$arr=array("a","b")
输出数组用print_r($arr)可以输出简单的数据类型也可以输出复杂的
数据类型。
输出是Array([0]=>a[1]=>b[2])
0=>a:键值对;
数组下标可以为字符串,这是PHP特有的。
数组下标默认从零开始依次递增。
下标是从前面的数字最大的下标加1。
数组下标可以为汉字。
foreach循环:只作用在PHP数组循环中。
foreach(待循环数组 as 下标=>值)
is_array()判断是不是数组。
二、数据库
1.存放数据的仓库。
2.数据库分类:mssql,access,mysal,sqlserver,oracle,DB2.
3.数据库分类=》数据库=》表=》数据
4.我们使用的数据库:mysql;
5.mysql优势:开源免费,存储百万级别的数据。
6.appche默认的端口号是:80;
mysql默认端口号为3306;
ftp默认端口号:21;
使用mysql数据库时一定要开启数据库服务
如何访问数据库:通过数据库管理工具(phpmyadmin-系统自带
navicat)
7.数据库操作的步骤:登录数据库(数据库用户名及密码:phpstudy默认
为root及空。)
选择或者创建数据库 =》选择对应的数据库双击。=》新建表。
8.数据库数据类型:与编程中的变量类型类似。
主要分为两大类型:数字型和字符串类型。
数字型:smallint,tinyint,int,bigint...;
double,float,decimal...;
字符串:varchar(长度255),char(长度255),text(不限定)
9.varchar和char的区别?
都是字符串的类型;最长长度都为255,在使用时要制定长度。
不同点,varchar是变长;char是定长。
确定数据唯一性,相当于id=>自动递增,无符号,并且删除后面不重复。
数组的方法:is_array(),in_array(),substr(),explode(),
implode();
10.时间戳:time()格式化日期;date()设置默认时区。
date_default_timezone_set('Asia/Shanghai'):设置默认时区;
参数传递。
$_POST传参。将参数隐藏在header中进行传参。
get传参使用方便,安全性低。参数传递大小比较小。
post方式使用稍微麻烦一点,单安全性比较高。参数传递 大小默认为 8m;
修改和添加使用。
md5设置其格式转化为保密数字。
12.MVC模型层,视图层,控制器。
get方式传参:$_GET
使用a链接传参,<a href="**.php?x=y&m=n"></a>
使用表单:<form method="post"></form>
post方式参数获取:$_POST
使用表单传参:1.指定form中的action=>指定参数获取页面,及跳转页面
2.指定fform中的method=>参数传递方式,即get或post
3.指定表单控件的name属性=>参数名
13.页面加载:include()、require()
14.判断一个变量是否为空:empty()、isset()
15.上传图片:
(1)上传文件:a.表单一定要指定ectype="multipart/form-date"属性。
b.$_FILES用来保存上穿信息的预定以数组。
(2)exit();过程终止执行die();过程终止执行。
Array
(
[profile] => Array
(
[name] => 1.gif =》表示文件名
[type] => image/gif=》表示文件格式
[tmp_name] => C:\Users\b\AppData\Local\Temp\php4AA7.tmp
=》传送文件的临时保存位置。
[error] => 0
[size] => 8839=》文件大小
)
)
move_uploaded_file($_FILES['profile']['tmp_name'],'upload/'
.$_FILES['profile']['name']);表示保存图片到下一文件名为
upload的文件里。
主要问题:
1.文件上传的格式。
2.文件大小。
3.文件重名。
目录的写法$path='upload/sss/';
file_exists($path)寻找是否存在这个目录。
mkdir($path,777,true); 创建目录。
js内置对象:BOM--Window--location:window.location.href
history:window.heistory.back()
screen:window.screen.width
navigator:
DOM:--HTML--header/body--
4.SESSION及COOKIE:程序的一种存储功能
5.session的使用:开启:session_start();
保存:$_SESSION['变量名']
销毁:unset($_SESSION['变量名'])
6.连表查询:SELECT * FROM `表1` INNER JOIN `表2` ON
`表1`.`字段`=`表2`.`字段`。
SESSION的使用a.必须同一个域名下。
b.浏览器关闭字后丢失。
c.必须在同一个浏览器。
d.有效为24分钟。