编程基础(二)

242 阅读3分钟

PHP

image.png 在编译php代码时要使用Phpstudy放到网站根目录打开以免环境不适配

PHP语言可以混合HTML标记

PHP语言属于后端代码,在浏览器只能看到前端代码,PHP是看不完全的,在服务器才能看到后端代码

image.png 在PHP代码报错时,服务器会生成错误日志,在/var/log/httpd中有两个文件比较重要,分别是access_log和error_log,error_log就是生成的错误日志,访问日志记录在"access.log"文件中,

log文件就是日志文件

PHP用$定义变量名,JS用var定义

echo其实是个函数,可以打括号

image.png ‘’和“”有区别

string为字符型,相当于c语言的char,和bool\float\int等差不多,var_dump可以显示数据类型。

“.”可以拼接两个字符串,1.1.2

image.png 递增递减只能用于变量

$x=1

Ehco ++$x  输出2,先加一再输出

Ehco $x++  输出1,先输出再加一

image.png

image.png 三元运算符是一个类似if,else的判断符,条件?如果真则执行:如果假则执行

注意在PHP中变量都带着$使用

image.png JS可以在三元运算符中写语句,PHP不行

在 PHP 中,array() 函数用于创建数组

count() 函数用于返回数组的长度(元素的数量)

image.png

image.png

image.png js查看数组长度为document.write(数组名.length);

PHP查看数组长度是echo sizeof($数组名);

或者是echo count($数组名);

image.png 遍历数组

image.png 关联数组也就是自己给数组的值附上索引号而不用默认的索引

其实JS的对象也可以认为是数组

image.png 打错了,年龄是key,姓名是值,foreach,将数组的值和键遍历也可以将key.key.value换成a,a,b,反正是按顺序

数组里存放着数组,也就是二维数组

数组的数组存放着数组,也就是多维数组

image.png Print_r();可以把整个数组输出出来

image.png JS数组添加值用arr.push(); ,PHP添加值用array_push();

PHP 函数使用方法和JS一样

image.png

image.png 默认参数,就是对一个参数传入默认的值,后面调用时传参就使用新的值,不传参就使用默认值

image.png 函数内部的参数是局部变量,在函数内部要使用函数外部的参数时要加globle, 来证明在函数内部使用的该参数也是全局变量,不然会报错,系统会认为函数内部的参数和函数外部的参数不一样,虽然名字一样。

系统会给没有赋值的参数默认为NULL(空)

原理:全局变量会存放在内存里直到整个程序结束,而局部变量在函数运行完之后就会被内存释放

image.png

image.png

image.png

image.png 类的使用除了变量定义方式不同其他几乎和JS类似

了解:

image.png

image.png

PHP传参方法及文件处理

image.png $_GET[“”]可视为一个数组

Name=”uname”收到的name值传到$_GET[“uname”]里,相当于关联数组根据键向数组里传值,uname就是键,指定传值,但是和数组的键不一样的是,数组的键是一个数组里区分不同元素的数据,而此处的键是区分不同接收参数位置的数据

$GET是PHP自带的全局数组

image.png

image.png

image.png PHP代码里不能含有HTML代码,但是PHP的echo函数的输出内容是在客户机的浏览器解析,所以echo等函数可以解析html代码

Window.history.back(-1);返回上一步,属于JS代码

image.png

image.png

image.png HTML的表单里写GET方式,但是PHP以POST方法接收值,他们的KEY一样,能接收到值吗?

不能,机制不一样,最简单的来说:get通过地址栏传输,post通过报文传输;选择什么方式上传数据,就要对应选择什么方式接收数据

如果使用get方式上传数据,php中可以使用GET_GET、_REQUEST方式接收,REQUEST是可以接受get、post、cookie的

了解:

image.png

image.png

image.png PHP文件写入有一套完整的过程,要先用fopen()打开文件

再fread()或者fgets()等,最后要fclose关闭文件,而且这些都是函数

如图:

image.png

image.png

image.png Fgets()是获取一行的内容,但是第二次对同一对象使用却获取了两行的值

fgets遵循指针的原则,读取文件时会从第一个开始读直到读到换行,只要不读到换行在人眼看来是3,4行也认为是第一行。读完了一行之后指针1会停在读完的地方,也就是换行的地方。第二次读的时候就从上一次换行的地方读起

image.png 比如标黑的地方就是第一行

image.png

image.png Or die表示直接退出,不执行后面的语句换为执行’cannot open file:’.$file

相当于if else的文件打开版

在写文件之前要执行setenforce 0关闭SE模式

image.png 使用此函数无需进行fopen()和fclose()就能读取到文件的全部内容

file_put_contents默认的是重新写文件,会替换原先的值。当设置参数值为 FILE_APPEND 时,表示在已有文件内容后面追加内容的方式写入新数据。

image.png

image.png 实践制作留言板:

image.png <textarea></textarea>是文本框,cols是长度,rows是宽度

image.png PHP 中换行可以用 PHP_EOL 来替代,以提高代码的源代码级可移植性:

 

这两步制作的留言板有个问题,就是留言之后才能看到其他人的留言信息把表单的action=”action.php”的提交地址改为空,也就是action=””,意为提交地址就是本地址