PHP 基础知识

来源:互联网 发布:python sort 编辑:程序博客网 时间:2024/06/02 06:10

PHP

  1. DNS 将域名和IP相互解析. DNS服务器存储的是 IP地址和域名的对应关系.
  2. host文件:

基本语法

1 变量 age=13;name = “charley”

CMD 命令

  1. cd\ 后退到根目录
  2. 停止Apache $ net stop apache2
  3. 以管理员权限启动cmd: /C/Windows/system32/cmd.exe 右击选择以管理员权限运行.
  4. 查看Apache 版本 $ httpd -v

Apache 配置文件检查

  1. 语法检查
    1. 计算机->属性->高级系统设置->高级->环境变量->path ->编辑. 将变量值拷贝到写字板.
    2. phpstudy -> 打开文件地址->Apache 到bin -> httpd ->属性 复制地址
    3. 拼接到写字板上, 以逗号隔开.粘贴到 path 变量值上, 保存.
    4. cmd 执行 $ httpd.exe -t
  2. 网站根目录设置
    1. phpstudy -> 打开文件地址 -> Apache -> conf -> httpd.conf 打开. 搜索 DocumentRoot.
  3. 设置网站的首页默认文件 directoryIndex
    1. 搜索 directoryIndex 在后面添加自己想添加的首页 也可以改变顺序, 注意用空格, 隔开
  4. Listen 命令 Listen [IP][:端口号] Apache只给监听服务的请求提供服务, 其他的ip请求一概不提供.
    1. eg: Listen 80 // 监听本机所有 80端口的请求
    2. Listen 192.169.3.100
    3. Listen 192.169.3.100:80
  5. 设置网络根目录的外部(客户端)访问访问权限

    “`

    指定网站根目录

    DocumentRoot “e:\www”

6. 虚拟主机     1. 将一个真是的主机划分成若干个小空间,对外出租, 每个小空间都具有网站的完整功能 (www服务, FTP服务, 邮箱服务,数据库服务等), 每个小空间都可以绑定一个域名.    2. 配置 虚拟主机 NameVirtualHost 我们配置的虚拟主机,是基于域名的虚拟主机, 也就是一个IP地址,绑定多个域名. NameVirtualHost表示哪些IP地址可以访问定义的虚拟主机,一般放在Apache的主配置文件中(httpd.conf)    ```    NameVirtualHost *:80    Include conf/vhosts.conf  #表示在这个文件中配置    ```    3. 配置步骤        1. 配置本地的DNS文件 c:/Windows -> System32/ dirvers -> etc ->hosts        ```        127.0.0.1 www.ccl.com        127.0.0.1 www.cclin.com        127.0.0.1 www.cclxin.com        ```        2. 配置Apache的主配置        phpstudy -> 打开文件地址 -> Apache -> conf -> httpd.conf 打开        ```         Listen 80        NameVirtualHost *:80 #需要与Listen 一致#2.4.x版本这个命令已经删除        Include conf/vhosts.conf        ```        3. Apachede 的虚拟主机详细配置文件         phpstudy -> 打开文件地址 -> Apache -> conf -> vhosts.conf        ```        <VirtualHost *:80>         #所有ip的80端口都可以访问            ServerName www.ccl.com        </VirtualHost>        <VirtualHost *:80>         #所有ip的80端口都可以访问            ServerName www.cclxin.com            #指定首页            DirectoryIndex abc.html             #指定网页根目录            DocumentRoot "e:\www"            #配置目录权限            <Directory "e:\www">                Options Indexes                Order Deny,Allow                Allow From All            </Directory>        </VirtualHost>        <VirtualHost *:80>         #所有ip的80端口都可以访问            ServerName www.cclin.com        </VirtualHost>        ```###数据类型1. 整形 取值范围 -21 亿 - 21 亿     $a = 10; 2. 浮点数 不能直接运算     ```  if((0.1 + 0.7) == 0.8) // if 不成立
  1. 字符串
    3.1 单引号里面的转义字符只能是 \ 和 \’ 输出变量的名称
    3.2 双引号内的转义字符都可以用. 输出变量的值,如果变量后面跟的是非空字符,编译器可能会糊涂. 可以加标点或者空格解决,也可以加大括号
    3.3长字符串 可以直接解析PHP变量, 但是不能做运算

    ```$str= <<<abc....abc;        each $str```
  2. 布尔型 a=true;b = false 非零即真
  3. 资源类型PHP对外部数据的一个引用如数据库, 文件操作,验证码等

二维数组

方法一

$arr = array(    10,    arrary(10, 23,44,56),    arrary(13,434,56),    arrary(      10,      arrary(7, 23,45)     ))dump($arr) // 使用dump 打印结构会很清晰

方法二

    $arr[0][0] = 12;    $arr[0][1] = "hahha";    $arr["contact"]["mobile"] = "123456";

数组相关函数

  1. print_r($arr) // 打印比较清晰的变量. 多用于打印数组的对象.
  2. unset() //删除某个变量,

    $a = 100;unset($a);$arr = arrray(10, 20,30,40,50);unset($arr[0], $arr[5]); //删除的值, 但是下标还在unset($arr); // 删除数组, 下标重新开始.
    1. count统计数组中单元数据中有效数据的元素个数

      $arr = array(10, 30, 40, 50);
      $arrCount = count($arr); // 4;
      #arr[100] = 30;
      $arrCount = count($arr); // 5, 是有效元素的个数.
    2. foreach() // 用于遍历数组
      sum=0;arr = arrary(10 => 5, 43=> 234, 3=>43);
      foreach(arranvalue){
      sum+=value;
      }

函数

  1. 函数内部访问全局变量 使用global.

    $name = 10;
    function test1(){
    global $name ; // global 只能在函数内部使用, 是使用全局变量的地址.
    $name = 20; // 不能使用 global $name = 20; 这样的写法
    echo $name;
    }
    test();
    echo name; // 20;

Date 函数

  1. echo date(“y年m月d日 h时i分s秒”); //格式化输出
  2. echo time(); //返回1970年一月一日到现在的时间. (秒)

数据库基本概念

  1. 数据库服务器 安装了数据库服务软件的电脑
  2. www服务器 安装了 Apache 软件的电脑
  3. DBNS database management system, 数据库管理软件.
    1. Access 是微软的小型数据库, 100M 左右.
    2. SQL server 是微软的中型数据库. 付费
    3. Oracle 美国甲骨文公司, 超大型
    4. MySQL : 瑞典的AB公司, 后被甲骨文收购, 适应中小型公司.

新建数据库

选择utf_general_ci

  • 环境变量配置 phpstudy ->打开mysql文件所在, 复制bin的路径.->我的电脑->环境变量, 将复制的路径拼接在后面, 用分号隔开
  • 登录到MySQL 服务器 mysql.exe -h主机名(mysql 端口3326) -u用户名 -p密码

    mysql -hlocalhost -uroot -proot

  • 显示数据库

    SHOW DATABASES;

  • 创建数据库 数据库名不区分大小写 (默认字符集为 lain1)

    create database if not exists students charset utf8;
    create database if not exists students;
    create database students;

  • 查看数据库字符集

    show create database students; // 查看创建数据库的语句

  • 修改命令字符集

    alter database students default character set utf-8;

  • 删除数据库

    drop database if exists students;

  • 选择当前要操作的数据库

    use students;

  • 当前数据库下显示所有的数据表

    show tables;

  • 创建数据表

    1. 列的类型 tinint, text, bigint, char, varchar
    2. 列的属性
      1. not null 该字段是否可以为空
      2. default charley 该字段默认值为charley
      3. auto_increment 自增, 必须值整形.
      4. primary key 主键, 不能为空, 不能重复.
      5. id 字段的属性必须有 1, not null 2. auto_increment, 3, primary key

    create table studentsInfo (id int, name text, age int, order int);

eg:create table news (    id int not null auto_increment primary key, // id 不空,自增,主键.    title varchar(100) not null, // 标题 不空, 长度 100个字符    author varchar(20) not null , // 作者     source varchar(30) not null,    hits int(5) not null default 0, //点击数 长度为5位, 不空, 默认0.    is_ppt tinyint(1) not null default 0, // 是否是轮播图 短整形(- 255 -255), 长度为1位, 不空, 默认为0,    content text null, // 新闻标题 text 可以为空    addate int(16) not null 添加时间 长度为16位, 不为空);以上 // 后都为解释说明, 不能保留, 
  • 打印表结构信息

    describe news

  • 删除表

    drop table if exists news; // 删掉news表

  • 数据类型

    1. tinyint 最短整形 0 - 255(-128 - 127) 占用一个字节
    2. smallint 短整形 0 - 65535 占用2个字节
    3. mediumint 中型整形 0 - 1677万 占3个字节
    4. int 整形 0 - 21 亿 4个字节
    5. big int 最大整数 0 -42亿 8个字节
    6. float(M,D) 单精度 精确到小数后7位. float(6, 2), 总长度为6, 小数点后2位.
    7. double(M, D) 双精度 精确到小数点15位,
    8. date 时期型 格式为 YYYY-mm-dd
    9. time 时间型 格式为 00:00:00
    10. char(M) 固定长度的字符串 0 - 255 个字符
    11. varchar(M) 可变长度的字符串 0- 65535个字符.
    12. tinytext 0-255个 字符
    13. text 0 - 1670 万个字符
    14. longtext 0-42亿 个字符.

SQL 基础

  • 添加记录

    insert into 表名 (字段1, 字段2, 字段3) values(‘字符要加引号’, value2, value3….)

  • 删除记录

    delete from 表名 where 条件 // 如果没有条件, 则全部删除.

  • 修改记录

    update 表名 set 字段1 = value1, 字段2 = value2, …… where 条件. // 如果不加条件, 则所以记录都会跟新.

  • 查询

    select 要查询的字段名(* 表示全部) from 表名 where 条件 order by 排序 limit 限制.
    eg select id, titile from news where hits > 5;

    • 条件

      id between 1 and 10 // id 取 1 - 10之间的id in (1, 3, 4) // id 是 1, 3, 4 其中之一的.id not in (1, 2, 3) // id 不是 1, 2, 3title like ('字符要加引号') // title 包含 字符要加引号title not like ('hdhhd') // title 不包含 hdhhdid is not null // id不是null
    • 排序

      select id from news order by id desc; // 按照id 降序
      select id from news order by id asc; // 按照id 升序

    • limit startrow 从指定的行数起, pagesize 返回记录数

      limit 0,10 // 从第0条起 返回10条
      limit 10 , 10// 从第10 条起, 返回10条

*更新

update students set 字段1 = value1, 字段2 = value2 where 条件;

  • 问题一 用dos 添加记录时,中文在数据库中显示的是乱码.

    1. 原因 数据库的字符集需要与dos的字符集相同.
    2. 检查 数据库字符集
    3. 检查dos 查看 当前页编码 左上角命令行图标 -> 属性.
    4. 提示, CMD 程序的字符集与操作系统字符集一样, 但是操作系统字符集该不了. 所以如果是 因为字符集不同导致的乱码, 解决办法是, 用dos命令 告诉数据库, 当前dos是什么字符集.

    “`
    cd/ mysql -hlocalhost -uroot -p
    $ set names gbk;

  • 修改数据库的默认字符集
    打开mysql文件夹 - my.ini -> 搜索default (有两处, 默认是拉丁) 改成utf8-> 重启

导入数据库

  1. 先创建数据库, 在导入数据库, 提示创建的数据库字符集最好是utf8
  2. 2.
原创粉丝点击