这个礼拜的学习内容,相对于之前的几个礼拜来说,相对于更加陌生一点。因为,在这之前的3年时间里,我们都没有接触过这一门语言。周一早上,老黄先对我们进行了前端知识点的回归复习。不知不觉才发现啊,原来我们已经学了不少东西了。从回顾复习来看,自己看到有些函数并不能很快的反应过来,但是总体吃代码还是能够看懂,但是相对来说对于jQuery知识点的熟悉程度还是比较欠缺。所以,在接下来的寒假,估计任务会有一点点重!
复习过后,我们先进行了Apache和php软件的安装。因为周一和周二的电脑崩溃,所以周三在卿山的帮助下,我才完成了软件的安装。PHP对于我来说是新的,但是接触下来也不是那么难以接受。我想,多练练,肯定会改善的吧!
一、PHP、Apache的安装
apache 下载地址: http://www.apachelounge.com/download/
php 下载地址:http://windows.php.net/download#php-5.6
apache配置修改 :apache24/conf/https.conf 编辑
注意:1、其中的文件路径需要根据你的实际情况自行填写
2、记住当在 Windows 环境下的 Apache 配置文件中添加路径值时,所有的反斜线,如 c:\directory\file.ext,应转换为正斜线: c:/directory/file.ext。对目录来说,也必须由斜线结尾。
容易报错:can not load server 注意vc版本,注意文件版本,注意load文件的路径!
Apache配置讲解。
ServerRoot "c:/PHP/Apache24" //找到Apache的根目录
Listen 80 //配置所监听的端口,默认为80,其他端口号在请求的时候要入请求端口号 如 localhost:88
ServerName localhost //请求本地webserver服务所使用的域名
注意:1、在apache下,一般至少会有2个日志文件需要注意,一个是logs/access.log 一般只要你访问一次就会有一条日志,包括静态资源。一个是logs/error.log 这个一般是当服务器错误,或者请求发生错误的时候会自动记录日志。
需要更加注意:这2个文件在项目运营到一定阶段的时候,会非常大,可能会超过GB,因为尽早分析后清理。
2、程序下面有一般至少会有一个进程,进程下面至少有一个线程。比如迅雷打开,就会有迅雷的进程,如果你要下载,就会有多个线程,当然你如果下载一个就可能就只会开启一个下载线程,如果开启多个,那么就会有多线程!
3、所谓的带宽,就是指最大的请求大小,标识信号传输的数据传输能力。比如服务器是2M带宽,而这个时候服务器上有一个500kb的图片。那么当前网络请求只允许4个人同时访问这个图片。
如何卸载 Apache 2.4.16
1、很简单,在“[Apache_home]\bin”目录下创建一个文本文件,内容为:httpd.exe -k uninstall -n "Apache2.4"Pause。然后把它改名为“uninstall.cmd”,并运行文件,就可以卸载Apache了。当然创建一个“uninstall”文件很有必要,以方便以后卸载Apache,只要运行“uninstall.cmd”文件,就行了。
2、然后你就可以将Apache文件夹和PHP文件夹删掉,就可以了。
二、客户端 -> 服务器
由客户端,请求服务器。再由服务器返回给客户端。
1、客户在浏览器里输入URL
2、通过的浏览器解析之后,发送到网关
3、再发送到网络运营商
4、网络运营商通过DNS解析,找到你的访问的域名对应的服务器,把相关的请求和数据发送到服务器,
5、服务器内,先由webserver也就是网络服务器接受并解析请求
6、解析完毕之后对应发送给相对应开发语言比如php,php解析完毕之后
7、如果需要用到数据库,则请求数据库
8、如果不需要则直接返回给webserver,webserver再返回给客户端。
三、PHP基础语法
PHP 是什么?Hypertext Preprocessor
PHP 到底是什么? 它其他就是一种服务端的脚本语言。仅此而已。
PHP 能干什么? 你说呢?它能做很多事情,包括网站,手机应用,游戏开发,脚本开发等。总之它的能量超乎你想象!
php 建议初期使用notepad++ 开发。 notepad里建议安装一个插件 explorer 有文件管理器的功能。
行业内的PHP开发组合,一般如下:WAMP WNMP WANMP LAMP LNMP LANMP
关于注释:建议以后每个脚本的最前面有一个注释,信息如下:
/*
** fileName: bobaogeAuto.php //文件名字
** etc: auto import bobaoge message //文件的用处
** author: jabez.huang //文件的作者
** date: 2016/01/04 //最后一次更新时间
*/
关于PHP标识:
每一个PHP是以 <?php 开头 以 ?> 结尾
注意:php文件里是可以写HTML的。但是需要注意的是,不能写在PHP的范围内,也就是不能再<?php ?>内,只能在之外写。比如 <?php echo 123; ?> <h1>123</h1>
echo 是 PHP 输出函数。 关于PHP输出函数有以下几种:
1、echo 输出基础类型,如字符串 和 数字,bool等
2、print 同上,但是有返回值,1和0
3、printf 也是输出格式化字符串
4、print_r 输出集合类型,有一定规则。
5、var_dump 输出集合类型,没有规则
PHP变量是以$符号标识的。
注意:变量只能以下划线_ 和大小写字母开头,在变量过程中,只能有下划线 大小写字母 以及 数字。不要有空格!运算符等!
正确:$a $ab $_ab
错误: $1a $a b
在PHP中有通配符,%s 代表是匹配字符串类型,%u %d %i 都是匹配整型 %f 代表是匹配浮点类型 %.2f 代表是匹配浮点类型 保留2个小数。
printf() 和 sprintf()的区别:
printf() 返回的是 字符串 和 长度。
sprintf() 返回的是只是格式化的字符串
如: sprintf("http://aiqiyi.com/%s", "寻龙诀");
变量赋值是指将一个变量的值给另一个变量。如:
$a = 10;
$b = $a;
$b = 20;
echo $a;//10
echo $b;//20
引用赋值是指将一个变量的内存地址给另一个变量,因为如果整个给内存地址的变量一旦发生改变,那么另一个变量立马改变。
$a = 10;
$b = &$a;
$b = 20;
echo $a; //20
echo $b; //20
PHP中字符串连接 不用+ 用 .
函数作用域
在PHP中,全局变量改变,通常不会影响到局部变量,除非你一定要去使用全局变量。那么请你一个关键字 叫做global。如:
$number = 1000;
funciton abc(){
global $number;
echo $number;
}
abc();
static 关键字一般用于静态变量,而静态变量的作用就是让这个变量在不使用的时候 不会被释放,而是长期保留。
PHP中 {}用于表示同时编译括号内的变量,如:
$a = 10 ; echo {$$a};
PHP中的数据类型:
整型、浮点型、布尔型、字符串
数组、对象、资源类型、NULL
单引号和双引号的区别:
双引用会进一步解析内部的变量定义,而单引号则会直接输出这个字符,因为理论上来说单引号快一些。
PHP中的数组、字典的关键字是array
如 $a = array(); //定义了一个空数组
$a = array( 1, 2, 3 ); //定义了一个数组有3个元素。
遍历数组,第一种方法,count为数组计数:
for( $i = 0 ; $i < count($a); $i++ ){
echo $a[$i];
}
遍历数组,第二种方法,foreach:
foreach( $a as $key ){
echo $key;//$key名字为变量名 随便定义
}
字典:$a = array( "name" => "abc", "a" => "b");
在php的字典中 key => value 的形式存在的。
遍历字典:
foreach( $a as $key => $value ){
echo $key."-".$value;
}
四、PHP函数
1、rand 随机数。rand(最小值,最大值)
2、array_rand 随机数组。提取数组中的任意一个元素。注意是提取下标。array_rand(数组,提取数);
3、array_search 可以快速找到数组或者字典中的某个值,如果没有找到返回的0或者false。【注意:这个函数因为会返回0,但是0在数组里是有下标的,因此判断的时候请用 恒等 === array_search( "查找的值", 集合 );】
4、array_unique 给集合去重,如果发现重复的元素直接删除
5、unset 移除集合里的某个值
$arr = array( 1, 2, 3 );
如: unset( $arr[0] );
6、die() 设置程序断点,用于程序调试
7、array_unshift 在集合头部插入一个或者多个单元。如:array_unshift( $arr , "a", "b" );
8、array_pop 删除集合最后一个元素。
9、array_shift 删除集合第一个元素。
10、implode 将数组以特殊符号,链接成字符串。
11、explode 将字符串以特殊符号进行分割成数组。
五、PHP语法加强
文件编码的简要说明:在中国有2种编码非常常用:1、gb2312 / gbk;2、utf-8
应用于每次notepad新建PHP文件都是utf-8无BOM格式:notepad -> 首选项 -> (左侧)新建 -> 默认语言 php -> 右侧的选中UTF-8 无BOM头 应用于ANSI
windows的基础命令:
dir 列出当前目录的文件和文件夹
cd 切换目录 如: cd abc 注意:中间有空格
cd .. 返回上一级目录
cd C:\Users\mybirdie\Desktop 切换到具体的目录
tab键 可以自动补全(如果当前在其他盘内,请先切换到当前盘,如c:)
PHP执行脚本:
1、请修改环境变量
控制面板->系统->左侧的高级系统设置-> 下方的环境变量,下方的 Path,打开,在尾部加入; (如果有则不需要添加,win10请使用新建不需要加入; ) 当然你的PHP安装路径 ,如:C:\PHP\PHP 。设置完毕之后点击完成,并关闭全部窗口。
2、重新打开cmd窗口,执行语句 php -v 会有显示当前PHP的版本。
3、php test.php 执行php任何脚本即可。
set_time_limit();用于php脚本的执行时间 同等于在php.ini中的max_execution_time 默认执行30秒。
如果要设置成执行无限秒 set_time_limit( 0 );sleep();用于暂停的秒数
array_keys 返回集合的键
array_values 返回集合的值
in_array 判断集合中是否有某个值,如in_array( "a",$arr); 返回的是布尔值。
array_key_exists 判断数组中是否包含了某个键值,返回的是布尔值。
array_count_values 返回的是数组中,所有值出现的次数
在php中的变量比较,优先转化成有同一类型的变量,优先转化成整型,如:0 == "name" 那么优先转化"name" 为0 因此 它们是相等的。
字符串中,转化后如果判断是浮点则直接用浮点跟整型比较一次。
判断某个变量的数据类型用 is_类型
如:
is_string 判断字符串
is_int 判断整型
is_array 判断数组
is_float 判断浮点
转化类型函数:
intval
floatval
strval
// 通常这种情况下:浮点*整型(字符串等) 会有二进制的问题,
//因此,如果需要解决有2个渠道:
//1、在输出之前用strval函数。
//2、请用round函数,功能是四舍五入
注意:在PHP中“a”+/-/*/ “b” 都是需要转化成整型或者字符串类型运算的。
强制转化成整型一般都是从左往右查看,如果为数字则保留,其他的则直接为0
如:10a 强制转化为 10 , a10 强制转化为 0
empty() 一般用于判断集合是否为空。如:if( empty($arr) ) echo "集合为空";
var_export 输出或返回一个变量的字符串表示,通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
宏:define 相当于超级全局变量。
define( "参数名", 值);
如: define("A","Hello");
echo A; //注意这里不要加$;
@ 忽略警告或者错误。继续执行下面的
echo "Hello";
echo @(1/0); //加了@会自动忽略掉警告或者错误
echo "Hello";
整个程式输出的是Hello Hello;
魔术方法
__FILE__ 当前文件的路径
__LINE__ 定义的行数
__DIR__ 当前文件的路径 不包括这个文件名
如:
define( "FPATH" , __FILE__ );
define( "Line" , __LINE__ );
define( "DIR1", __DIR__ );
$global 申请使用或者定义 全局变量。
$_SERVER 打印当前服务器的详细信息。
$_REQUEST 同时接收POST/GET方式请求
$_POST 接收POST方式请求
$_GET 接收GET方式请求
六、PHP文件操作
1、函数参数默认值 :在php中参数是有默认值的,如果某个参数不传值,那就直接执行默认值 如:function a( $a = 10 ){}
2、文件一般分有几种路径:
1、利用http访问的路径。
一般用于webserver等网络访问某个文件。如果http://localhost/index.html 其实上就是访问你在webserver配置文件下设置的根目录下的index.html。如果你需要访问根目录下的某个文件夹里的文件,请在访问的时候,带上文件夹的名字访问。如:http://localhost/文件夹名(不要中文)/index.html
2、利用file访问的路径。
一般用于本地访问,file是指找到本地的某个文件夹里的文件。如:file://C://PHP/PHPWeb/jquery.1.8.0.js 【注意:该种方法,一般用于简单的页面制作,布恩那个用于PHP开发和网络开发。】
3、路径其实也分有两种表示方式:
1、绝对路径:特指完整的路径 在file中为: file://c:/php/phpweb/index.html 。在http中引用某个文件为: www.baidu.com/dev/jquery.js
2、相对路径:特指相对于当前目录下,所引用的那个文件的路径。如http下 引用某个文件 dev/jquery.js
4、文件操作常用函数:
1、is_writable 判断是否可写
(file_exists 判断文件是否存在)
2、fopen 打开一个文件【fopen 参数详解 :r read 只读; w 写; a 追加 注意:写会覆盖!】
3、fread 读取一个文件
4、filesize 返回当前文件长度
5、fwrite 写入一个文件
6、fclose 关闭一个文件
5、文件操作流程
1、判断文件是否可写 2、打开一个文件 3、读或者写一个文件 4、关闭一个文件
6、json_encode 集合转化为json编码格式。
json_decode(集合,true) json转化为数组、字典格式,如果不加true 可能会转化为OBJECT 对象格式。
7、die( 输出语句 ); 断点
exit( 输出语句 );退出