php_php 学习 - CSDN
php 订阅
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。 [1] 展开全文
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。 [1]
信息
外文名
PHP: Hypertext Preprocessor
设计者
Rasmus Lerdorf
中文名
超文本预处理器
编程范型
面向对象、命令式编程
PHP简介
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 [1]  根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。 [2] 
收起全文
精华内容
参与话题
  • 本课程从零开始,以通俗易懂的方式讲解PHP技术,手把手教你掌握每一个知识点。 课程内容包括: 1.PHP简介 2.安装PHP环境 3.第一个PHP程序 4.PHP核心语法(变量、数据...
  • PHP基础

    千次阅读 2020-03-03 19:21:45
    PHP基础 一、 变量 1.变量类型:整型、浮点型、布尔型、数组、对象、null(没有值也没有类型)、资源 2、变量检测: isset可以检测变量是否存在;对于null,isset也返回false eg: a=null;if(isset(a=null; if(is...

    PHP基础—变量

    一、 变量

    1.变量类型:整型、浮点型、布尔型、数组、对象、null(没有值也没有类型)、资源
    2、变量检测:
    isset可以检测变量是否存在;对于null,isset也返回false
    eg: a=null;if(isset(a=null; if(isset(b)){
    echo“变量b存在”
    }else{
    echo"变量b不存在"
    }echo ‘

    	  /结果:b不存在
    		if(isset($b)){
    		echo“变量a存在”
    		}else{
    		echo"变量a不存在"
    		}
    		echo‘<br/>’
    		  /结果:a存在
    

    3、变量判断类型
    gettype()获取变量
    在这里插入图片描述
    4、打印变量
    echo 字符串
    print_r 数组
    var_dump 打印变量的类型及其值
    在这里插入图片描述
    5、变量类型转换
    php中变量的类型可以转换,最常见的是字符串与数字的转换或者是数字/字符串—>布尔值的转换!
    在这里插入图片描述
    6、赋值
    传值赋值、引用赋值
    在这里插入图片描述
    7、销毁变量 unset
    在这里插入图片描述
    8、动态变量名
    用变量的值在做变量的名,如$$a;
    在这里插入图片描述

    展开全文
  • Php全套教程,Php学习路线图

    千次阅读 多人点赞 2018-12-13 14:18:18
    PHP在web领域可谓是应用广泛,大多数网站都是PHP编写的,现在比较火的app开发也可以用PHHP做后端处理。并且PHP相对于其他语言简单,好上手,更适合零基础的人学习。 对于初学者,大家都需要一套比较完整并且系统的...

    PHP在web领域可谓是应用广泛,大多数网站都是PHP编写的,现在比较火的app开发也可以用PHHP做后端处理。并且PHP相对于其他语言简单,好上手,更适合零基础的人学习。

    对于初学者,大家都需要一套比较完整并且系统的教程,帮助自己走进php大门,为此小编特整理了,这一套php学习教程,只要按照此学习教程学习,一定可以事半功倍,收获良好的学习效果!

    先来一张php学习线路图:

    第一阶段:

    推荐视频:

    PHP基础视频_html+css+js :http://pan.baidu.com/s/1o8uaS2m

    javascript+jQuery:http://pan.baidu.com/s/1i54u19r

    html+css+bootstrap:http://pan.baidu.com/s/1bp7U5Oj

    Php轻松入门视频:http://pan.baidu.com/s/1i5mJ4pf

    第二阶段:

    6天玩转MySQL:http://pan.baidu.com/s/1mhYXBM4

    PHP核心编程视频教程: http://pan.baidu.com/s/1jImQGRk

    第三阶段:

    基于PHP面向对象的自定义MVC框架高级项目开发 :http://pan.baidu.com/s/1jHIVrTW

    Smarty入门视频课程免费分享: http://pan.baidu.com/s/1c1AufhI

    第四阶段:

    SVN视频教程无偿分享 : http://pan.baidu.com/s/1hrNdkv6

    2017XML视频教程 : https://pan.baidu.com/s/1i46ghH7    

    2017AJAX系列视频教程: http://pan.baidu.com/s/1boK52GZ

    ThinkPHP开发框架2016版: http://pan.baidu.com/s/1c6A9Ue

    2016最新Linux系列视频教程免费分享: http://pan.baidu.com/s/1o77XMPG

    第五阶段

    NoSQL之Redis技术 :http://pan.baidu.com/s/1o8Ixz7O

    PHP微信接口开发 : http://pan.baidu.com/s/1eSigal0

    mongodb实操视频 : http://pan.baidu.com/s/1i5frYV7 

    第六阶段:

    珍贵HyBrid App视频免费分享 :http://pan.baidu.com/s/1gf7MuR5

    2016基于laravel框架app软件开发: http://pan.baidu.com/s/1qXSmNJQ

    展开全文
  • PHP学习心得

    万次阅读 多人点赞 2019-03-07 17:42:33
    学习PHP有半个月了。每天都要打代码and写笔记。学过C和Java,在学习PHP的过程中比较顺利吧 (^-^) 代码打得越多,运行得越多,慢慢得会对程序理解得越深。下面就讲讲我学习PHP的心得。 PHP入门很容易,语法很简单...

    学习PHP有半个月了。每天都要打代码and写笔记。学过C和Java,在学习PHP的过程中比较顺利吧 (^-^) 代码打得越多,运行得越多,慢慢得会对程序理解得越深。下面就讲讲我学习PHP的心得。
    PHP入门很容易,语法很简单,但我不说PHP很容易。难易都是相对的,相对于Java来说PHP确实要简单些,但也不是花一点时间就可以学好的。先了解一下PHP是什么?PHP能做什么?为什么选择学习PHP呢?如果以后想走PHP,就努力专一花大量的时间深学它,不要有这种精几门编程语言的心态。
    最开始学习PHP的时候应该搭建一个LAMP或者WAMP环境。虽然网上有很多集成环境,安装也很方便,但我还是选择的自己搭建PHP环境。我觉得手动搭建环境比较灵活,对整个环境也会有更深的理解,对后期的学习也有帮助吧。当看见浏览器出现It works!,还是挺高兴的 o(≧v≦)o~~
    这里写图片描述
    然后学习PHP的基础知识和技术。这些知识大概有语言基础、字符串、数组、正则表达式、与web页面交互、加密、面向对象、会话等等,花了几天的时间来学习。不管学什么语言,基础都是最重要的。在语法上感觉php跟javascript也有一些相似之处。随着学习的知识不断增多,不懂的问题也开始出现,一直有写笔记的习惯。主要是一些自己的总结,收藏的博客,重复代码块等等。
    这里写图片描述
    再接下来接触到数据库。PHP支持多种数据库,尤其与MySQL关系最好。刚开始学习数据库基础的时候,还是建议大家在命令提示符下操作数据库。虽然有MySQL图形化管理工具,但是一开始不要太过于依赖它了。PHP提供了mysql扩展和mysqli扩展,用来操作数据库,前者已经被废除。还有就是对所有数据库都通用的一个扩展PDO,它屏蔽了各种数据库系统的差异,使用同一个接口来访问各种数据库。就像Java的JDBC那样,很方便程序从不同数据库之间的移植。
    在这里还要提到有关数据库的一些函数封装,我们用一般方法进行数据库操作要分开写很多方法。用面向对象的方法会增强开发效率。可以从网上找一些源代码来研究。另外还要注意MySQL的优化,让数据库尽量用更少的时间 找到我们需要的东西。
    还有就是调试程序的技巧,比如说可以分段echo结果,缩小调试范围,特别是在与数据库交互的时候,先输出SQL语句看看,再分析怎么会操作不成功等等。调试程序可能会占用很多的时间,当然还是要总结自己的调试经验。

    展开全文
  • PHP7基础入门

    万人学习 2019-03-12 13:36:08
    King老师精心打造PHP7入门教程,由浅入深讲解了什么是PHPPHP环境搭建,PHP基础语法等,是PHP入门教程! 山哥出品,必属精品!
  • 前端之路(PHP篇)

    千次阅读 2019-01-22 11:50:40
    PHP基础(重点) PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。主要适用于Web领域的开发,能够完成动态网页的制作。 PHP特点 PHP是目前最流行的网站...

    PHP基础(重点)

    PHP简介

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。主要适用于Web领域的开发,能够完成动态网页的制作。

    PHP特点

    • PHP是目前最流行的网站开发语言(B/S结构)之一。

    • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

    • 支持几乎所有流行的数据库以及操作系统。

    • 源码开放、免费(free)

    • php是世界上最好的语言

     

    动态网站与静态网站(了解)

    • 静态网站:使用浏览器端语言进行编程,网站由静态代码(HTML.CSS,JS)组成。

    • 动态网站 :网页通过服务器的程序(php等)动态生成。用户可以和服务器进行交互(可以根据用户输入的不同信息,返回不同的运行结果)

    总结

    动态网站的 指的是网站数据的动 而不是 视觉上的动;

     

    软件架构(了解)

    软件架构可以分为BS架构与CS架构

    C/S架构

    Client/Server架构,即客户端/服务器架构。需要安装对应的客户端软件,才能获取服务器的服务。

    常见的CS架构:

    ​ QQ、LOL、微信等

    特点:

    • 需要安装才能使用

    • 性能高效,使用更加稳定和流畅

    B/S架构

    Broswer/Server架构,即浏览器/服务器架构。随着Internet的兴起,无需安装专门客户端软件,通过浏览器去请求服务器;

    • 不需要安装,只需要浏览器即可。

    • 相比CS架构,性能相对较差,没有那么流畅和稳定。

     

    PHP运行原理

     

    HTML运行原理

    1) 在浏览器的URL地址栏中输入 www.baidu.com/index.html 地址,点回车。请求就发送给百度服务器。

    2) 百度服务器找到index.html文件,并将文件的内容返回给浏览器3) 浏览器接收到index.html中的内容,渲染到页面上。

    同理: localhost/a.html , 则会返回 本机web服务器根目录下 a.html文件的内容。浏览器拿到内容后进行渲染。

    PHP运行原理

    apache不认识php 浏览器也不认识php

    1) 在浏览器地址栏中输入 localhost/index.php ,点回车之后。将请求发送给apache服务器。

    2) 服务器找到 index.php文件之后,转发给php解释器

    3) php解释器将index.php文件中的php代码全部转为字符串,再返回给apache

    4) apache将处理好的字符串返回给浏览器,浏览器渲染后就可以看到页面

     

    变量

    php是一门弱类型语法,变量的类型可以随意改变。变量其实就是存储数据的容器

    变量的命名规则

    //1. 不需要关键字进行声明,变量在第一次赋值的时候被创建。
    //2. 必须以$符号开始
    //3. $后面的命名规则与js的变量命名规则一致。
    $name = "呵呵";
    echo $name;

    变量操作

    删除变量

    unset($var);

    ​ 销毁指定的变量

     

    判断变量是否设置值

    bool isset($var)

        检测变量是否设置,并且不是 NULL。

    ​ 变量未设置或者设置为null,返回false(认为变量没有设置)。其余情况全部为true。一般用来判断变量是否设置,因为变量未设置,无法直接使用。(变量先赋值,在使用!) 

     

    判断变量是否为空

    bool empty($var)

    ​ 判断变量是否为空。PHP中认为变量的值为:""、0、"0"、NULL、FALSE、[]时,变量虽然赋值了,但是无实际的意义。为空。

     

    数据类型

    php数据类型: 8种数据类型

    基本数据类型: 布尔, 字符串, 整数, 浮点数

    复合数据类型:数组, 对象

    特殊的类型:resource(资源) null

     

    简单数据类型

    字符串

    $str = "php是世界上是最好的语言";
    echo $str;

    整数

    $num = 100;
    echo $num;

    浮点型

    $float = 11.11;
    echo $float;

    布尔类型

    $flag = true;
    //当布尔类型值为true时,输出1
    echo $flag;
    $flag = false;
    //当布尔类型为false时,输出空字符串
    echo $flag;

    字符串连接符

    //1. 在php中,+号只有算数的功能,并不能拼串
    //2. 在php中,拼串使用.
    $name = "大象";
    echo "大家好,我是" . $name . ",今年18岁";

    php中的单引号与双引号

    //1. 字符串的定义可以使用单引号,也可以使用双引号
    $name = "大象";
    $desc = '很帅';
    //2. 双引号可以解析变量
    //3. 单引号的性能会高于双引号(了解)
    ​
    $str = '$name 很帅';
    echo $str;//$name 很帅
    ​
    $str = "$name 很帅";
    echo $str;//大象 很帅
    

    数组

    在php中,数组分为两种,索引数组和关联数组

    计算数组长度的方法: count(数组名);

    索引数组(类似与JS中的数组)

    $arr = array("张飞","赵云","马超");
    echo $arr;//echo只能打印基本数据类型
    echo $arr[0];//张飞

    关联数组(类似与JS中的对象)

    //属性名必须用引号引起来
    $arr = array("name"=>"zhangsan", "age"=>18);
    echo $arr["name"];

    输出语句

    //1. echo 输出简单数据类型
    //2. print_r 输出数据结构,一般用于输出复杂类型。
    print_r($arr);//print_r是一个函数,不要忘记小括号
    //3. var_dump 输出完整的数据结构,包括类型,一般用于精准调试
    var_dump($arr);

    二维数组

    数组中的每个元素又是一个数组二维数组的存取元素,需要两次访问,依次确定行和列$arr[x][y];

     //索引数组
        $arr=[
            [1,2,3],
            [4,5,6],
            [7,8,9]
        ];  
        //取值
        echo $arr[2][2];
        //存储一个人信息
    ​
        $info=[
            "name"=>"zs",
            "age"=>100
        ];
    ​
        //存储一个班信息
        $infos=[
            [
                "name"=>"zs",
                "age"=>100
            ],
            [
                "name"=>"ls",
                "age"=>100
            ],
            [
                "name"=>"ww",
                "age"=>100
            ]
    ​
        ];
        //取值
        echo $infos[1]["name"];

     

    对象(了解)

    在php以及其他高级语言中,都有类的概念,表示一类对象,跟js中构造函数类似。

    //定义一个类(类似js的构造函数)
    class Person {
      public $name = "小明";
      public $age = 12;
      private $sex = "男";
    }
    ​
    $zs = new Person;
    print_r($zs);//打印对象的结构信息
    echo $zs->name;//对象中取值用 ->
    echo $zs->age;
    echo $zs->sex;//私有属性,无法获取

     

    流程控制

    分支结构(if/switch)

    基本上来说,所有语言的if..else语法都是一样

    $age = 17;
    if ($age >= 18) {
      echo "终于可以抽烟喝酒烫头了";
    } else {
      echo "哎......";
    }
    ​
    //===================
    switch(变量){
        case 值1:
            程序块1;
            break;
        case 值2:
            程序块2;
            break;
        ...
        default:
            程序块
    }
    ​
    

    循环结构(while / for / do...while)

    while(判断表达式){
        程序块;
    }
    ​
    for(赋值表达式; 判断表达式; 步进表达式){
        程序块;
    }
    ​
    do{
        程序块
    } while(判断表达式)

    遍历索引数组

    $arr = array("张三", "李四", "王五", "赵六", "田七", "王八");
    //获取数组的长度: count($arr)
    for($i = 0; $i < count($arr); $i++) {
      echo $arr[$i];
      echo "<br>";
    }

    foreach 语句结构

    用来遍历数组(关联数组和索引数组均可)。

    foreach($arr as $key=>$value){程序体}
    ​
    foreach($arr as $value){程序体}

    ​ $arr : 要遍历的数组

      $key: 单元的下标,可以是任意变量名
      $value: 单元的值,可以是任意变量名
    
    
    //遍历关联数组
    $arr = array(
      "name"=>"zs",
      "age"=>18,
      "sex"=>20
    );
    foreach($arr as $k => $v) {
      echo $k . "=" . $v . "<br>";
    }

    contiune和break

    contiune: 结束当前循环,直接跳入下一次循环break: 结束整个循环

     

    函数

    注意,在php中函数不能重复声明

    <?php
        header("content-Type:text/html;charset=utf-8");
        //php中函数的语法与js中函数的语法基本一样,不同点在于
        //1. 函数名大小写不敏感
        //2. 函数的形参可以设置默认值
        function sayHello ($name="周杰伦") {
            echo "大家好,我是$name";
            echo "<br>";
            [return 返回值;]
        }
        sayHello();//不传参数,会使用默认值
        sayHello("大象");//传参数,默认值不生效
    ?>

    php中关于函数需要注意的问题:

    • 在php中函数不能重复声明

    • 函数体内的变量只在函数体内有效

    • 函数体外的变量只在函数体外有效

    <?php  
        $age = 18
        function fn(){
            $name = '大象';
            echo $name;  //有效
            echo $age; //无效
        } 
        fn();
        echo $name;  //无效
        echo $age; //有效
        
    ?>
    

    常量

      保存不会发生改变的数据(如:3.1415, 路径等)时,最好使用常量。

    常量的使用方法: 1) 声明: define(常量名, 常量值, 大小写区分标志);

    ​ true(不区分)/false(区分/默认);

    2) 调用: echo 常量名;

    注意:一般在实际工作中,常量都用大写

     

    PHP内置函数

    数学函数

    • max(),min() 分别返回一组数的最大值及最小值;

    • abs() 返回绝对值。

    • floor() 向下取整。

    • ceil() 向上取整。

    • round() 四舍五入。

    • rand(min, max)  返回随机数,可以取到两端的值。

    日期函数

    • time() 返回当前的 时间戳(1970到现在的时间的秒数)

    • date(format,time) 格式化一个本地时间或日期

    • 年-月-日 时:分:秒

      格式:Y(年) m(月) d(日) H(时) i(分) s秒

        $time=time();//获取时间戳
        echo date('Y-m-d H:i:s',$time); //格式化时间戳

    默认时区会不太正确, 我们在东八区, 比0时区会多八小时

    路径: D:\phpStudy\php\php-5.4.45
    在php.ini里加上找到date.timezone项,设置date.timezone = "PRC",重启环境就ok了。
    注意: 默认 date.timezone前面有个分号(;)在配置中分号是注释,要记得把分号删除掉,才能生效

    PRC: 中华人民共和国

    字符串函数

    • str_replace(查找的值,替换的值,执行替换操作的字符串) 字符串替换

    • trim(字符串); 去除首尾空白字符

    • explode(分割符,执行分割的字符串); 使用一个字符串分割另一个字符串,返回一个分割后的数组(类似split)

    • implode(连接符,执行连接的数组); 将数组根据连接符拼接成字符串(类似join)

    • substr( 字符串,起始索引,截取长度 );  截取字符串 中文占3个字节长度

    • strchr(字符串,标识字符); 从左向右找标识字符,返回该字符后全部字符(包括该字符)

    • strrchr(字符串,标识字符); 从右向左找标识字符,返回该字符后全部字符(包括该字符) 主要用于获取后缀名

     

    页面动态渲染

    • PHP本身支持与HTML混编

    • 混编的文件后缀必须为 .php, Apache 才会调用 PHP 解析

    • PHP与HTML混编时,服务器中的 PHP 引擎 只会执行php标签内部的PHP代码,非PHP的代码(PHP标签外部的内容)直接忽略,最后会将PHP的执行结果和非PHP代码 一起返回给浏览器,由浏览器进行解析

    • <?php 
          header('content-type:text/html;charset=utf-8');    
          echo 2+3;
          // php的引擎 只会执行php代码块中代码,代码块外面的代码会被忽略
          // 最后 服务器会将php执行的结果 和代码块外面的内容一起返回给 浏览器,
          // 由浏览器进行解析
      ?>
      <a href="http://www.baidu.com">百度一下</a>

     

    include文件引入

    介绍

    ​ 不同的页面中有相同的代码部分,可以将其分离为单个文件。需要调用时,include 引入对应的文件即可调用。提高代码的复用率。

    类似于 js 中 script 标签导入, 可以用于函数复用

    语法

    include | include_once   "文件的路径"

    include 与 include_once区别

    • include 可以重复引入文件

    • include_once 只引入一次,防止多次引入文件

     

    PHP数据读写到文件(数据持久化)

    程序运行过程中,数据存储在内存中的,程序结束, 数据会销毁

    如果希望可以永久存储某些数据,可以将数据存储在硬盘上(存储在文件中)

    将数据由 内存 存储到硬盘的过程,称为数据持久化;

    • file_get_contents(path)   根据路径读取文件内容, 得到一个字符串

    • file_put_contents(path,$str)  将一个字符串写入到一个文件中。(只能存储字符串)

      int file_put_contents(string $file, string $data[, constants flag]);
      参数1: 文件路径
      参数2: 要写入文件的字符串
      参数3: 可选参数,默认不写,新内容覆盖原文件中的内容;FILE_APPEND是向文件中追加内容
      返回值: 写入文件的字符串长度(不用记)

      注意: 如果我们要将一个关联数组存储到本地文件,会造成数据丢失.

    • json_encode($data); 将PHP变量转成JSON格式字符串(常用于把数组转成json字符串)。

    • json_decode($str,true); 将 JSON 字符串, 转换为 PHP 数组。

     

    表单处理

    表单(form):表单用于收集用户输入信息,并将数据提交给服务器。是一种常见的与服务端数据交互的一种方式

    //1. action: 指定表单的提交地址
    //2. method: 指定表单的提交方式,get/post,默认get
    //3. input的数据想要提交到后台,必须指定name属性,后台通过name属性获取值
    //4. 想要提交表单,不能使用input:button 必须使用input:submit

    php获取表单数据

     // $_GET 是 PHP 系统提供的一个超全局变量,是一个数组,里面存放了表单通过get方式提交的数据。
     // $_POST 是 PHP 系统提供的一个超全局变量,是一个数组,里面存放了表单通过post方式提交的数据。

    get与post的区别

    //1. get方式
        //1.1 数据会拼接在url地址的后面?username=pp&password=123456
        //1.2 地址栏有长度限制,因此get方式提交数据大小不会超过4k
    //2. post方式
        //2.1 数据不会在url中显示,相比get方式,post更安全
        //2.2 提交的数据没有大小限制, 可用于文件上传

     

    文件上传

    html要求

    1. 文件上传的提交方式必须是post方式
    2. 需要给form指定enctype="multipart/form-data"
    3. 指定name属性,后台才能获取到
    <input type = "file" name="photo"/>

    php相关

    • 文件上传时,通过$_FILES才能获取到,这是一个二维数组。

        Array
        (
            [photo] => Array
                (
                    [name] => 001.jpg   // 文件名字
                    [type] => image/jpeg  // 文件类型
                    [tmp_name] => C:\Users\Jepson\AppData\Local\Temp\phpF2A0.tmp   // 上传图片临时保存的位置
                    [error] => 0     // 上传错误码, 错误码为 0 表示没有错误
                    [size] => 6000   // 文件大小, 单位字节, 大小 6kb 左右
                )
      ​
        )

    • 上传文件时,文件会临时保存在服务器上,如果文件最终没有保存,那么临时文件会被删除,保证服务器安全。

    • sleep(10) 可以让代码延迟10秒钟才执行。

    • move_uploaded_file($path, $newPath);可以保存临时图片

    // 保存图片的完整代码
      // 思路:
      // 1. 在文件上传成功的情况下, 进行图片的保存   error == 0
      // 2. 获取临时文件路径
      // 3. 随机生成新的文件名, 注意文件中后缀名是不能改变的
      // 4. 根据新的文件名, 转移临时文件
    ​
      $file = $_FILES['photo'];
    ​
      // 判断上传是否成功
      if ( $file['error'] == 0 ) { // 上传成功
        // 1. 获取临时文件路径
        $ftemp = $file['tmp_name'];
    ​
        // 2. 随机生成新的文件名, 后缀不能随便起, 要获取一下
        $name = $file['name'];
        $text = strrchr($name, '.');
        // 为了防止重复, 生成随机的文件名以当前时间秒数+随机数组成
        $newName = time().rand(10000,99990).$text;
    ​
        // 3. 进行转存
        move_uploaded_file($ftemp, "./upload/$newName");
      }

    HTTP协议

    协议:

    协议,就是事先的一种约定、规则、规范、标准。

     常见协议

    • HTTP、HTTPS 超文本传输协议

    • FTP 文件传输协议

    • SMTP 简单邮件传输协议

    HTTP协议

    HTTP协议即超文本传输协议, 是一个 [浏览器端] 和 [服务器端] 请求和响应的标准

    • 常用请求方法 GET, POST

    • 请求 (request):请求行、请求头、请求主体

    • 响应 (response):状态行、响应头、响应主体

     

    请求报文和响应报文

    请求/请求报文

    ​ 请求由浏览器发起,其规范格式为:请求行、请求头、请求主体。

    响应/响应报文

    ​ 响应由服务器发出,其规范格式为:响应行(状态行)、响应头、响应主体。

    get请求的请求报文详解

    //--------------------------请求行--------------------------------
    // GET  请求方式
    // /day02/01.php?username=pp&password=123456    请求路径+参数(注意点)
    // HTTP/1.1 HTTP的版本号
    GET /day03/01.php?username=pp&password=123456 HTTP/1.1
    ​
    //--------------------------请求头--------------------------------
    // Host:主机地址
    Host: www.study.com
    // HTTP1.1版本默认开启,建立过连接后,TCP连接不会断开,下次连接可以继续使用(底层,不用管)
    Connection: keep-alive
    //chrome浏览器自己增加的,不用管
    Upgrade-Insecure-Requests: 1
    //浏览器的代理字符串(版本信息)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36
    //浏览器端可以接受的类型。
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,`*/*`;q=0.8
    //从哪个页面发出的请求
    Referer: http://www.study.com/day02/01-login.html
    //检查浏览器支持的压缩方式
    Accept-Encoding: gzip, deflate, sdch
    //浏览器支持的语言,优先中文。
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
    ​
    //----------------------------请求主体-------------------------------------
    //get请求没有请求体,因为要传递的数据已经拼接到了请求主头中

     

    POST请求的请求报文

    //-----------------------请求行---------------------------------------------
    POST /day02/01.php HTTP/1.1
    ​
    //-----------------------请求头--------------------------------------------
    Host: www.study.com
    Connection: keep-alive
    //传递的参数的长度。
    Content-Length: 29
    Cache-Control: max-age=0
    Origin: http://www.study.com
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36
    //内容类型:表单数据,如果是post请求,必须指定这个属性。
    Content-Type: application/x-www-form-urlencoded
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,`*/*`;q=0.8
    Referer: http://www.study.com/day02/01-login.html
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
    ​
    //------------------------请求体------------------------------------------
    username=pp&password=123456

     

    GET请求与POST请求的对比

    • GET请求没有请求体,因为GET请求的参数拼接到地址栏中了

    • POST请求有请求体,就是传递的参数。

    响应与响应报文

    //---------------------响应行(状态行)-------------------------------
    //HTTP/1.1  HTTP版本
    //200 响应的状态
        //200表示成功
        //302页面重定向
        //304表示文档未修改
        //404表示找不到资源
        //500表示服务端错误
    HTTP/1.1 200 OK
    ​
    //----------------------响应头-----------------------------------------------
    Date: Thu, 22 Jun 2017 16:51:22 GMT //服务器的时间
    Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45  //服务器的版本信息
    X-Powered-By: PHP/5.4.45  //后台编程语言信息
    Content-Length: 18   //服务器的响应主体长度
    //内容类型,告诉浏览器该如何解析响应结果
    Content-Type: text/html;charset=utf-8
    ​
    //-----------------------响应主体------------------------------------------------
    用户登录成功

    Mysql数据库

    初识数据库概念

    专门用来存储、管理数据的仓库 英文:Database, DB。

    数据库的分类

    • 关系型数据库: 基于表, 表与表之间可以存在关系,可以进行多表查询的存储方式, 适合较为复杂的存储

      如: MySQL, SQL Server, oracle

      表结构:

      每一行代表一条数据 --- 记录

      每一列都是一类数据 --- 字段

      订单编号 商品名称 价格 数量
      100123 华为mate10 4999 2
      100124 花裙子 499 1
    • 订单编号 用户 配送地址
      100123 隔壁老王 北京市京顺路99号
      100124 隔壁老宋 北京市清华大学1号楼

    • 非关系型 数据库: 基于键值对的存储方式, 数据之间没有耦合性, 特点执行效率高 mongodb

      //类似对象的键值对形式
      {
          "username": "gblw",
          "password": 123456,
          "uid": 007
      }
      

     

    使用可视化工具navicat操作数据库

    MySQL只是一个数据库软件,如果我们要创建数据库,或对数据库进行增删改查,刚开始可以用可视化工具来操作,让我们更加直观的了解数据库

     

    数据库表的操作

    数据库的数据类型

    也就是数据库中可以存储的数据类型(又叫做字段类型)

    字段类型初步介绍

    • 整型 int

      ​ 存储如年龄,产品数量,编号等。

    • 小数类型 float , decimal

      重量,工资,奖金,价格等

      ​ 使用decimal类型,实现小数的精确存储,一般用来存储与钱有关的数字。3.333333331

    • 字符串型 varchar(M),char(M) ,text

      ​ M为该字段可以存储的最多字符数(字节)

      ​ 如varchar(10)最大可以存储10个字节

      ​ varchar一般用来存储长度变化比较大的字符串,如文章标题,商品名称,

      ​ char存储长度比较固定的字符串,如手机号,身份证号,序列号,邮编。

      ​ 此外可以使用text类型,存储较长的字符串,无需指定字符串的具体长度。

    • 日期时间型 datetime, date(年月日),time(时分秒)

      ​ 年月日时分秒。

    字段约束

    字段约束: 字段数据的属性规则(特征)

    1. not null 不为空

      可以限制字段值不能为空

    2. default 默认值,

      可以设置字段的默认值,在没有录入时自动使用默认值填充。

    3. primary key 主键 :唯一标识,不能重复,不能为空

      设置字段为主键,主键字段的值不能重复,不能为空。而且一个数据表中只能设置一个字段为主键,作为每行记录的唯一身份信息(索引)。

    4. auto_increment 自动增长

      设置字段为自动增长,默认从1开始自动分配编号。自增长字段必须为一个key(索引,数据结构,便于快速查找数据,相当于书的目录),一般与primary key结合使用。

      类型必须为整型。

    5. unique key 不能重复

      唯一键,设置字段的值为唯一的,可以设置多个字段为唯一键。唯一键字段的值可以为空。

      学号设置为主键,要求唯一的,不能为空的,用来标识学生信息,

      姓名 年龄 性别 id
      wb 18 1
      ww 19 3
      ls 30 未知 4
      hs 80 5
      呵呵呵 45 7
      id name age gender score
               

    SQL-操作数据库的语言

    SQL:structured Query Language 结构化查询语言。

    • 通过这个语言可以对数据库,进行增删改查

    SQL编写注意点: 注释用 -- , 语句结束加分号(;)

     

    增删改查**

    1. 插入数据 insert

    -- insert into 表名 (字段列表) values (值列表)
    insert into book (name,author,category,price) values ('天龙八部','金庸','文学',20)
    1. 修改数据update

    -- update 表名 set 字段名称1=值1,字段名称2=值2,... where 条件
    -- 如果不加条件会修改表中所有对应的字段
    update book set name='笑傲江湖',price='30' where id=10
    1. 删除数据delete

    -- delete from 表名 where 条件
    delete from book -- 会删除所有数据
    delete from book where id=10
    1. 查询数据select

    -- select 字段列表 from 表名
    select name, author from book -- 只查询表中name和author的信息 
    -- select * from 表名 where 条件  *表示所有字段
    select * from book where author='金庸' and price>20

    SQL高级

    • where 条件

      查询时,不添加 where 条件, 返回数据表所有行。需要添加限定条件,只返回需要的行。

      select  字段列表 from  table where 条件;

      -- 条件 : =, >, <, >=, <=, and, or  
      
    • Like 模糊匹配  % 通配符

      -- 查找姓张的人
      select * from 表名 where name like '张%';
      
    • in 语法:一次查询多个符合条件的数据

      select * from 表名 where  字段 in  (value1,value2,value3);
      示例:
      select * from stu1 where name in ('zs', 'ls', 'ww'); -- 查找name值为zs, ls, ww 的数据
    • count() 获取返回数据的总条数

      表名-- 查询满足条件数据的总条数   
      select count(*) from 表名 where 条件
    • 排序

      select * from 表名 order by  字段名称;        默认升序
      select * from 表名 order by  age;  -- 按照年龄来排序
      select * from 表名 order by 字段名称 desc;      降序​
    • limit 对结果集进行截取 一般用于取数据的前几条

      select *  from  表名  limit 截取的起始索引,截取的长度 
      
    • 联合查询(多个表联合查询)

      select 字段列表  from  表A  join 表B  on  表A.字段=表B.字段 
      ​
      join 将表A和表B联合起来
      on  根据什么字段把表A和表B联合起来
      ​
      select *  from  teacher  join class  on class.id=teacher.classid;  -- 老师表和班级表联合查询
      select teacher.*, class.classname  from  teacher  join class  on class.id=teacher.classid;   -- 老师表和班级表联合查询,但只显示老师表的全部内容和班级表的名称
      ​
      -- 注意: 多表联合查询时,字段要写明是那个表的字段 如  表.字段名

      PHP操作数据库

      连接数据库基本步骤

    • 连接数据库

    • 准备sql语句

    • 执行sql语句

    • 获取执行的结果并分析

    • 关闭数据库

    • 操作数据库常用API

    • mysqli_connect(IP, 用户名,密码,数据库名, 数据库的端口号) 连接数据库

    • mysqli_query($link, $sql) 执行SQL语句

    • mysqli_error($link); 返回错误描述

    • mysqli_close($link); 关闭连接

    • mysqli_fetch_assoc($res); 从结果集中取得一行作为关联数组返回

    • mysqli_num_rows($res); 返回结果集的行数 $res->num_rows

    • sql操作注意事项:

    • 使用PHP发送SQL语句前,可以先打印SQL语句,检查语句的正确性。

    •   // 1. 连接数据库
        // mysqli_connect(ip地址, 用户名, 密码, 数据库的名称, 端口号);
        // 执行结果
        //    1. 连接成功, 返回一个数据库连接对象
        //    2. 连接失败, 返回 false
        // @表示错误抑制符, 可以抑制错误的输出
        $link = @ mysqli_connect('127.0.0.1', 'root', 'root', 'test02', 3306);
      ​
        // var_dump($link);
      ​
        // 如果数据库连接失败
        if ( !$link ) {
          // 程序结束, die 方法, 终止当前程序执行, 输出一段语句
          die("数据库连接失败");  
        }
      ​
        echo "数据库连接成功<br>";
      ​
        // 2. 准备 sql 语句: 删除一条数据
        $sql = "delete from stu where id = 14";
      ​
        // 3. 让数据库执行 sql 语句, 并分析结果
        // mysqli_query(数据库连接对象, 要执行的sql语句)
        // 执行成功返回 true, 执行失败返回 false
        if ( mysqli_query( $link, $sql ) ) {
          echo "删除成功";
        } 
        else {
          echo "删除失败<br>";
          // mysqli_error 可以查看错误消息
          echo mysqli_error($link);
        }
      ​
        // 4. 关闭数据库连接 (挂电话)
        mysqli_close( $link );

       

      非查询(增删改)和查询语句(select)的区别

      通过mysqli_query()函数,来执行sql语句,操作数据库

    • 执行的是非查询sql语句时,mysqli_query()执行成功返回true,失败返回false

    • 而执行 时,mysqli_query()执行成功,返回查询数据的结果集,失败返回false查询数据逻辑如下

        // 操作步骤:
        // 1. 连接数据库
        // 2. 准备 sql 语句
        // 3. 让数据库执行 sql 语句
        // 4. 分析执行结果
        // 5. 关闭数据库连接
      ​
        // 1. 连接
        $link = @ mysqli_connect('127.0.0.1', 'root', 'root', 'test02', 3306);
        if ( !$link ) { 
          // 连接失败
          die('数据库连接失败');
        }
      ​
        // 2. 准备 sql 语句
        $sql = 'select * from stu where id;';
      ​
        // 3. 执行 sql 语句, 分析结果
        // mysqli_query
        // (1) 执行非查询语句, 成功 true, 失败 false
        // (2) 执行查询语句, 成功返回结果集, 失败 false
        $res = mysqli_query( $link, $sql );
      ​
        if ( !$res ) {
          echo mysqli_error( $link );
          die('数据库查询失败');
        }
      ​
        // mysqli_fetch_assoc 查询成功, 从结果集中取数据, 以关联数组的形式返回
        // 一次只取一条数据, 如果没取到, 返回 null
        $arr = [];
        while( $row = mysqli_fetch_assoc( $res ) ) {
          // 将值推到数组中
          $arr[] = $row;
        }
      ​
        echo '<pre>';
        print_r($arr);
        echo '</pre>';
    • 数据库工具函数的封装

      为了提高代码的复用性,把数据增删改的操作封装成一个方法

        // 定义常量
        define( 'HOST', '127.0.0.1' );
        define( 'UNAME', 'root' );
        define( 'PWD', 'root' );
        define( 'DB', 'test02' );
        define( 'PORT', 3306 );
      ​
      ​
        // 非查询语句封装
        // 封装一个执行非查询语句的方法, 提高代码的复用性
        // 参数: $sql 要执行的 sql 语句
        // 返回值: true / false
        function my_exec( $sql ) {
          // 1. 连接数据库
          $link = @ mysqli_connect( HOST, UNAME, PWD, DB, PORT);
      ​
          if( !$link ) {
            echo '数据库连接失败';
            return false;
          }
      ​
          // 2. 准备 sql 语句, 就是传递过来的 $sql
      ​
          // 3. 执行 sql 语句, 分析结果
          if ( mysqli_query( $link, $sql ) ) {
            // 执行成功
            mysqli_close( $link ); // 关闭数据库
            return true;
          }
          else {
            // 执行失败
            mysqli_close( $link ); // 关闭数据库
            return false;
          }
      ​
        }
      ​
        // 查询语句的封装
        // 参数: $sql 要执行的 sql 语句
        // 返回值: 
        //    (1) 成功, 返回数据(二维数组)
        //    (2) 失败, 返回 false
        function my_query( $sql ) {
      ​
          // 1. 建立连接
          $link = @ mysqli_connect( HOST, UNAME, PWD, DB, PORT );
          if ( !$link ) {
            echo "数据库连接失败";
            return false;
          }
      ​
          // 2. 准备 sql 语句 $sql
          // 3. 执行 sql 语句, 分析结果
          $res = mysqli_query( $link, $sql );  // 结果集 或者 false
      ​
          if ( !$res ) {
            echo "获取数据失败<br>";
            echo mysqli_error($link);
            mysqli_close( $link );
            return false;
          }
      ​
          // 得到结果集, 将结果集的所有内容取出到数组中
          $arr = [];
          while ( $row = mysqli_fetch_assoc($res) ) {
            $arr[] = $row;
          }
      ​
          mysqli_close( $link );
          return $arr; // 返回结果数组
        }

     

    COOKIE 和 SESSION

    会话:浏览器与服务器之间的数据交流。

     

    HTTP协议特点:

    无状态的, 多次请求之间没有相关性

    即同一用户请求同一网站的不同页面,服务器无法识别是否是同一用户发起的请求。因此,用户无法进行连续的业务逻辑。

    如:登录,已在A页面登录,请求B页面,提示未登录。

     

    cookie 和 session 区分

    • cookie: 在浏览器端的 存储数据的 容器

    • session 在服务器端的 存储数据的 容器

    cookie

    • 在浏览器端的 存储数据的 容器

    • 可以使用js对cookie进行操作

    • cookie 允许服务器脚本(PHP脚本)在浏览器端存储数据

    • cookie特点:在cookie中数据设置后,浏览器再次请求服务器指定页面时,会自动携带cookie中的数据到服务器,在服务器中可以获取cookie中的数据;

       

    js操作cookie(了解)

    // 设置cookie
    document.cookie = 'name=zs'; 
    document.cookie = 'pwd=123';   
    ​
    // 获取cookie中的值
    document.cookie;

    jquery.cookie.js插件 操作cookie

    //向页面中引入插件js文件,基于jquery的 
    $.cookie('weight',100,{expires:7});//设置   expires 过期时间
    $.cookie('name');//获取
    $.removeCookie('name');//删除 
    ​
    $.cookie(键,值,{expires:过期天数})
    $.cookie(键) //获取 

    PHP操作cookie(服务器端操作cookie)

        //设置cookie
        setcookie('名称','值'); 
        setcookie('名称','值','有效期');
        //删除cookie  将过期时间设置为之前的时间即可
        setcookie('名称','',time()-1000); 
        //获取cookie  
        //$_COOKIE是PHP的超全局变量,内部存放有浏览器传过来的cookie数据,$_COOKIE只能用于获取数据
        $_COOKIE['名称'];

    小结:

    • cookie中的数据 可以被同一个网站的页面所共享

    • 不同浏览器的cookie 不能共享

    • cookie的数据存储在浏览器中,每次请求服务器,在请求报文中携带cookie的数据,发送给服务器

    • 服务器端无法直接操作cookie,是通过在服务器端设置响应头的的方式,通知浏览器对cookie进行设置,

    • cookie中的数据有效期,不设置是会话级别的, 浏览器关闭,会话结束,数据销毁

    • cookie存储容量小,约4kb

    • 存储的cookie值中不要出现空格,等号,分号

    session

    • 在服务器端存储数据的容器

    • session容器是一个数组的形式,通过超全局变量$_SESSION 进行取值和设置

    • session在使用前,必须先 session_start 开启session 机制

    • session中的数据可以被当前网站所共享

    session的基本操作

    开启session机制(使用session前必须调用此方法)

     session_start(); //开启session会话或者重用已经创建的会话。

    小结:

    1. 会在服务器中自动对每个第一次访问的用户, 随机生成一个sessionID

    2. 再根据 sessionID, 自动创建一个session会话文件,我们可以在其中存储该用户的数据

    3. 响应时, 在响应头中设置set-cookie, 存放该用户的sessionID

    4. 将来浏览器端根据响应头, 将sessionId 存到 cookie 中, 并在下一次请求时携带

    5. 下次访问时, 服务器端就会根据 sessionId 找到该用户的会话文件, 我们可以从session中读取用户信息, 实现会话保持

    设置和获取session中的数据(通过超全局变量$_SESSION进行操作)

    //设置
    $_SESSION['键']='值'; 
    //删除
    unset($_SESSION['键']); 
    //清空session
    $_SESSION=[]; 
    //直接删除session会话文件,PHP脚本将无法读取session数据
    session_destroy();
     //获取session的id
    session_id();
    

    COOKE 和SESSION的应用--登录状态保持

    登录模块的基本思路:

    1. 如果用户登录成功,在服务器中记录用户的登录状态

      • session_start(), 对于第一次访问的用户, 会自动生成 sessionId, 并创建session文件,

      • 我们需要在session文件中,记录当前用户的信息

      • 通过响应头,给浏览器的cookie设置sessionID

        if($name=='zs'&&$pwd=='666'){  
          // 登录成功, 将该用户唯一标识存到 session 中
          // 该用户数据库中 id 为 1
          $id = 1;
          session_start();
          $_SESSION['userid']=$id;
        }​
    2. 后续访问其他页面(个人中心),浏览器会自动发送cookie中存放的sessionID到服务器

    3. 服务器会浏览器传递根据sessionID,找到对应的session文件,查看其中是否存放有当前用户的信息

      • 是: 用户已登录 ,正常浏览

      • 否:用户未登录,跳转到登录页

     

    展开全文
  • php实现用户登录、注册以及修改功能(附加源码~)

    万次阅读 多人点赞 2019-07-30 10:51:51
    用户在注册账户时需要对用户输入的内容做check,需要对密码进行加密设置,登录时也需要进行一系列check。 登录页面 前台页面 前台页面代码denglu.html <!DOCTYPE html> <html>...s...
  • PHP衰落?

    千次阅读 2019-09-03 20:44:23
    PHP是不是已经走到了尽头?这是近年来的一个热门话题,毕竟有很多互联网企业都在尝试推出其他开发语言,并且吸引了相当多的关注。例如Go以协程著称,Java则有着最完善的生态,而Python则在人工智能领域保持优势。...
  • PHP中->和=>的意思

    万次阅读 多人点赞 2017-07-20 20:13:41
    在学习PHP中,遇到了->和=>这两个符号。  刚遇到这两个符号的时候不知道它们代表的含义,在经过百度后才发这两个符号的秘密。  下面来看一下在PHP中->的秘密,如下代码。<?php class Car { public $speed = 0; /...
  • PHP——个人信息管理系统

    万次阅读 多人点赞 2016-10-07 23:24:11
    楼主近来无事,做了一个个人信息管理系统,希望能给小白一点启发,大神不要吐槽,欢迎技术交流,文明批评。鞋鞋! 先贴上数据库结构图 表单中有id,用户名,昵称,性别,密码...reg.inc.php ...login.inc.php 登录
  • 搭建PHP开发环境(Apache+PHP+MySQL)

    万次阅读 多人点赞 2018-06-25 10:25:32
    简介:总结在Windows环境搭建PHP开发环境(Apache+PHP+MySQL) 安装Apache 1、下载Apache,地址:http://www.apachelounge.com/download/,如下图: 2、解压压缩包,最好放到磁盘根目录,不然配置时容易报路径...
  • 首先是下载adb. ...提取码:12wq 手机要打开开发者模式,不会百度(USB连接) 然后就是下载到c盘,把路径添加到环境变量中 如果不添加就会报错,如 成功的是这样的  在cmd中输入查询命令,就可以查到当前连接的手机...
  • php获取手机设备信息

    千次阅读 2018-11-14 09:54:14
    //版本 public function getOS() { $ua = $_SERVER['HTTP_USER_AGENT']; if (strpos($ua, 'Android') !== false) { preg_match("/(?&lt;=Android )[\d\.]{1,}/", $ua, $version);... ...
  • 0.韩顺平_php从入门到精通_视频教程_第0讲_开山篇_学习笔记_源代码图解_PPT文档整理 1.韩顺平_php从入门到精通_视频教程_第1讲_html介绍_html运行原理①_学习笔记_源代码图解_PPT文档整理 2.韩
  • 物联网学习笔记——索引博文

    万次阅读 多人点赞 2017-04-03 09:53:57
    1.物联网学习笔记受到《基于IP的物联网架构、技术和应用》一书的影响,始终认为物联网设备需要具备连接互联网的能力。 2.物联网学习笔记认为物联网并不是新技术,而是新的营销手段,而营销的对象正是哪些曾经无法...
  • 机器学习PHP的神经网络:PHP-ML库

    万次阅读 2017-03-14 15:27:09
    根据维基百科,机器学习(英语机器学习) - 一个广泛的子人工智能,使用数理统计部分,数值优化方法,概率论,离散分析,并从数据中提取知识的数学学科。 这句话,正是因为“神经网络”,已经2年了,专家是怎么说的...
  • 百度网盘2T学习资源分享干货满满

    万次阅读 多人点赞 2018-10-18 15:56:52
    所有的资源都是本人亲自打包,整理发送的,资源都是打包的,包括很多内容,来源包括通过网上支付获得,或者是好友分享,特在此分享给那些想奋斗或是正在奋斗中的人,希望能帮到你们...
  • 如何使用 IntelliJ IDEA 2017 配置PHP开发环境 及项目搭建本文适用于初学者利用 IntelliJ IDEA搭建 PHP 工程及 PHP开发环境,本人也是初学者,在学习中有所心得,特此罗列如下步骤,大神勿喷。 php安装与服务器搭建 ...
  • 零基础如何学习网络安全

    万次阅读 多人点赞 2017-03-11 19:00:55
    3、学习一下基本的html、js、asp、mssql、php、mysql等脚本类的语言 4、多架设相关网站,多学习网站管理; 5、学习linux,了解基本应用,系统结构,网络服务器配置,基本的shell等; 6、学习linux下的iptables、...
  • 点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事01入门介绍说到黑客,大家可能觉得很神秘,其实狭义上的黑客就是去寻找网站、系统、软件等漏洞,刚入门的黑客大部分从事渗透工作,而...
1 2 3 4 5 ... 20
收藏数 293,150
精华内容 117,260
关键字:

php