【嘉兴东臣PHP 2016.1.9】PHP基础配置、函数、文件操作

          这周主要学的学的是php,先学了环境变量,基础配置等。然后进行php基础语法与函数的学习。最后还学习了php中的文件操作。在学习过程中做了很多练习,还有很大一部分需要提高需要理解。做了模仿斗地主发牌的,还有登录注册提交信息的等等。最后的就是文件写入与登录注册的结合。老黄说的没错,代码靠积累多练,每天给自己出题去做去练。虽然我不一定会做到,但是我会尽量去逼着我自己去做。



PHP环境配置:

Apache 2.4 + PHP 5.6

apache 下载地址: http://www.apachelounge.com/download/
php 下载地址:http://windows.php.net/download#php-5.6

apache配置修改

apache24/conf/https.conf  编辑

第37行,关键词:ServerRoot "c:/Apache24"
这是Apache的安装目录,按照自己的实际情况(解压到哪就写什么)填写,这里我填写“D:/Apache“

第209行,关键词:ServerAdmin admin@example.com
这是Apache管理员Email地址,改不改无所谓。

第218行,关键词:#ServerName www.example.com:80
这是Apache的服务器地址,把前面的”#“去掉,把”www.example.com“改成”localhost“。

第242行,关键词:DocumentRoot "c:/Apache24/htdocs"
这个是网站的根目录,可以自己修改,这里我改成“H:/Web”。

第243行,关键词:<Directory "c:/Apache24/htdocs">
这个也是网站根目录,但是必须和上面的改成一样,否则无法打开网站。
注意:你填的这个目录必须已创建(必须是存在的),否则也会报错。

第276行,关键词:DirectoryIndex index.html
这个是网站的首页设置,你可以自己再添加一些网页,比如“index.php”等。
这里我改成“DirectoryIndex index.php index.htm index.html”。
注意:每个文件名中间要用空格隔开。
注意:Apache服务器程序在寻找首页文件时有一个先后顺序,即先找你填的第一个文件名,所以在修改的时候要注意先后顺序。

第359行,关键词:ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
这个是Apache服务器的关键文件目录,要修改为自己Apache的安装目录下的“cgi-bin”文件夹。

第375行,关键词:<Directory "c:/Apache24/cgi-bin">
和第8步一样,也改成一样的。

至此,Apache 2.4.16 配置完毕。
你可以打开Apache安装目录下的“bin”文件夹中的“httpd.exe”测试服务器,如果一闪而过,则说明你的配置文件有问题。如果打开一个空的命令提示符,那么恭喜你。

PHP配置:将PHP目录下的”php.ini-production"改名为"php.ini"。

第736行,关键词:; extension_dir = "ext"
把前面的“;”去掉,这个是指向扩展库目录的路径(需要指向存放 PHP 扩展库文件的目录),可以是绝对路径(如 "J:\PHP\ext")或相对路径(如 "ext")。这里它已经帮你写好了,只要稍稍修改一下即可。

从第878行开始,就是PHP的扩展库的开关设置,如果需要打开,只需要把相应的扩展库的前面的“;”去掉即可。
这里按照平时的使用需要和习惯,我依次打开php_fileinfo.dll、php_gd2.dll、php_mysql.dll、php_mysqli.dll、php_pdo_mysql.dll

至此,PHP 5.6.11 配置完毕。

Apache 2.4和 PHP 5.6 的整合

打开“[Apache_home]\conf\httpd.conf”。在中间插入一段文字:
LoadModule php5_module "J:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "J:/php"

注意:其中的文件路径需要根据你的实际情况自行填写
注意:记住当在 Windows 环境下的 Apache 配置文件中添加路径值时,所有的反斜线,如 c:\directory\file.ext,应转换为正斜线: c:/directory/file.ext。对目录来说,也必须由斜线结尾。


容易报错:can not load server  注意vc版本,注意文件版本,注意load文件的路径!


如何卸载 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文件夹删掉,就可以了。


介绍PHP:



注意所有代码 请放到你的Webserver开发目录下运行!

PHP 是什么?Hypertext Preprocessor
PHP 到底是什么? 它其他就是一种服务端的脚本语言。仅此而已。
PHP 能干什么? 你说呢?它能做很多事情,包括网站,手机应用,游戏开发,脚本开发等。总之它的能量超乎你想象!

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>

练习一:请写出一句话,“你管我去哪里!”其中“你管我"是HTML语言,"去哪"是PHP语言,"里"是HTML语言,但是请保证HTML和PHP文字颜色、大小一致。

echo 是 PHP 输出函数。 关于PHP输出函数有以下几种:
1、echo  输出基础类型,如字符串 和 数字,bool等
2、print 同上,但是有返回值,1和0
3、printf 也是输出格式化字符串
4、print_r 输出集合类型,有一定规则。
5、var_dump 输出集合类型,没有规则

学习建议:在你编程之前请打开你的PHP手册,这是必备良药!

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 函数

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 将字符串以特殊符号进行分割成数组。




文件编码的简要说明:
在中国有2种编码非常常用:
1、gb2312 / gbk
2、utf-8
如果你决定使用一种编码,那么请一直使用它,不然会有乱码危险!
 
应用于每次notepad新建PHP文件都是utf-8无BOM格式
notepad -> 首选项  -> (左侧)新建 -> 默认语言 php -> 右侧的选中UTF-8 无BOM头 应用于ANSI

注意:
因为webserver里有一个超时时间504,因此无法把PHP网页的执行时间,设置成无限秒。
因此在该种情况下,请使用 PHP执行脚本。

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任何脚本即可。

【BOM 字节序标记  php在处理BOM头的时候,有时候存在错误,因此建议用无BOM的】
【在windows的cmd下,如果需要显示中文,请将脚本编码格式转为 ANSI的格式】

set_time_limit();用于php脚本的执行时间 同等于在php.ini中的max_execution_time 默认执行30秒。
如果要设置成执行无限秒 set_time_limit( 0 );

sleep();用于暂停的秒数

换行:\n 用于脚本  <br/> 用于网页


No.1 -- 13431830923
No.2 -- 13243241234
..
No.10000 -- 1893242123



array_keys 返回集合的键
array_values 返回集合的值
in_array 判断集合中是否有某个值,如in_array( "a",$arr); 返回的是布尔值。
array_key_exists 判断数组中是否包含了某个键值,返回的是布尔值。
array_count_values 返回的是数组中,所有值出现的次数

==========================
在php中的变量比较,优先转化成有同一类型的变量,优先转化成整型,如:0 == "name" 那么优先转化"name" 为0 因此 它们是相等的。
字符串中,转化后如果判断是浮点则直接用浮点跟整型比较一次。
==========================
array_search,array_count_values。
看看下面这个集合中,name出现的次数?
$arr = array(
    "name" => array(
            "name" => array( "name" => "jack" )
            )
);

sort() 升序 rsort() 倒序

判断某个变量的数据类型用 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中参数是有默认值的,如果某个参数不传值,那就直接执行默认值 如:function a( $a = 10 ){}

文件一般分有几种路径:
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开发和网络开发。

路径其实也分有两种表示方式:
1、绝对路径
        特指完整的路径 在file中为: file://c:/php/phpweb/index.html 。在http中引用某个文件为: www.baidu.com/dev/jquery.js

2、相对路径
        特指相对于当前目录下,所引用的那个文件的路径。如http下 引用某个文件  dev/jquery.js

2、json_encode 集合转化为json编码格式。

3、json_decode(集合,true) json转化为数组、字典格式,如果不加true 可能会转化为OBJECT 对象格式。

练习一:请将PHP返回给HTML的整型格式,修改成集合类型的json编码格式 如:{code: 1 ,message:"注册失败" }

die( 输出语句 ); 断点
exit( 输出语句 );退出

4、文件操作
    1、is_writable 判断是否可写
        (file_exists 判断文件是否存在)
    2、fopen  打开一个文件
    3、fread  读取一个文件
    4、filesize  返回当前文件长度
    5、fwrite  写入一个文件
    6、fclose 关闭一个文件

1、判断文件是否可写
2、打开一个文件。
3、读或者写一个文件
4、关闭一个文件

fopen 参数详解
    r  read 只读
    w  写
    a  追加
    
    注意:写会覆盖!

转载于:https://my.oschina.net/u/2545459/blog/600244

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值