PHP

PHP

  • 超文本预处理器
  • 非常适合web开发(脚本语言)
  • 运行在服务器端
<?php
  echo 'hello world';
?>

基本语法

  • 文件后缀.php
  • 如何嵌入到HTML页面(使用php标签)
<?php
  echo 'hello world';
?>
  • php代码可以嵌入到HTML任何位置
  • php里面的语句是以分号结束(必须)
  • 路径和文件名称不能出现中文
  • 两种运行方式:1.虚拟路径(网址)的方式;2.命令行的方式;
    2.命令行的方式
<? php 
  for($I = 1;$I <10;$I++){
    echo $I . PHP_EOL;
}
?>
  • php输出方式
echo '输出字符串';
var_dump(任意类型数据);
exit(); //该语句执行完成以后,不会再有往下执行;

php变量

  • 变量声明
$ //$后面跟字母、数字、下划线(、中文)
$a = 1; //声明了一个整型变量
$b = 2.03;
$c = '12\'3';
  • 支持可变变量
$var1 = 'name';
$name = '123';
echo $$var1; // 打印 123 
  • 变量引用
$username1 = 'enco';
$username2 = 'www';
$username1 = $username2;
echo $username1; // 打印www
  • 地址引用
$username1 = 'enco';
$username2 = 'www';
$username1 = &$username2; //保存username2的空间地址
$username2 = 'encowww';
echo $username1; // 打印 encowww
  • 变量名称支持中文
  • echo输出的时候会去解析字符串内的变量名
$name = 'enco';
echo "$name是个人";//此时打印的是 $name是个人 这个变量的值,没有这个变量,报错
$name = 'enco';
echo "{$name}是个人"; //使用打括号将变量扩起来,防止污染全局
  • header('Content-Type:text/html;charset=UTF-8') (php规避中文乱码)

三种注释方式

  • /**/
  • //

变量类型

$str = '字符串';
//单双引号的区别
//单引号里面所有内容看作字符串
//双引号会去分析字符串里面是否有变量
$name = '安可';
$str = '$name是班长';
echo $str;
$str1 = "$name是班长"; //报错
$str1 = "{$name}是班长";
$str2 = $name . '是班长';
  • 般情况下推荐使用单引号

  • . 是字符串连接

  • 数组

$arr = ['enco','www'];
echo $arr[1];
var_dump($arr); //打印数组
  • 关联数组
$arr = array('name'=>'enco','age'=>18);
var_dump($arr);
echo $arr['name'] . '年龄是' . $arr['age'];
  • 多维数组
$student = [
    array('name'=>'enco','age'=>18),
    array('name'=>'enco','age'=>18),
    array('name'=>'enco','age'=>18)
]
$student[2]['name'];
foreach($student as $key=>$value){
  echo ($key+1) . $value['name'] . '年龄是' . $value['age'] . '<br>';
}

获得变量的类型

  • gettype
$a = 1;
echo gettype($a);
$b = 20.03;
echo gettype($b);//double
echo GETTYPE($b);//double

注意:自定义的变量名区分大小写
内置的关键字或者函数名称不区分大小写

  • 判断是否是指定类型
$arr = [];
var_dump(is_array($arr));

数据库操作

  • 插入
$db = new mysql('localhost','root','root','database');
$db->query('SET NAMES UTF8');
// INSERT INTO表名(字段1,字段2,字段3.。。。)VALUES(12,'信息1','信息1');
$sql = 'INSERT INTO members(username,passwd,tel,retimes)VALUES('enco','anke123321','15528189938','2017-8-25 10:30:20')';
$db->query($sql);
$db->close();
  • 查询
$db = new mysql('localhost','root','root','database');
$db->query('SET NAMES UTF8');
// SELECT 字段1,字段2.。。。。FROM 表名 WHERE 判断条件(用AND连接);
$sql = 'SELECT id, username,passwd FROM member WHERE username = "'.$_POST['username'].'" ';
$result = $db->query($sql);
$row = $result->fetch_array(MYSQLI_ASSOC);
if($row['id']){
    echo '账号正确';
}else{
    echo '你输入的账号不存在';
    exit;
}
if($row['passwd'] == md5($_POST['passwd'])){
    echo '密码正确';
}else{
    echo '密码错误';
    exit;
}
$db->close();

  • 取出数据库的总数量
SELECT count(*) AS nums FROM 表名 WHERE 判断条件
  • 引用、包含其他php文件
require '相对路径'; // 如果文件不存在,直接返回致命错误,不会执行之后的程序
include '相对路径'; // 如果文件不存在,返回警告错误,会执行之后的代码
require_once '相对路径'; //如果之前有引用这个路径文件,不会再次引用
  • 删除
DELETE(没有字段) FROM WHERE (AND连接)
  • 修改
UPDATE 表名 SET 字段1 = ‘新的值’ , 字段2 = ‘新的值’  WHERE 判断条件;

上传文件

  • 上传文件时,method必须是post
<form enctype = "multipart/form-data"> // 表单信息编码 
</form>
  • 存储上传文件在服务器
<?php
  der_dump($_FILES);
  move_upload_file($_FILES['img']['tmp_name'],'存放目录路径' . $_FILES['img']['name']);
?>

查询LIKE

  • LIKE “%关键词%”;
'SELECT * FROM 表名 WHERE 字段 LIKE “%关键词%”';

%关键词% : 包含关键词的
%关键词 : 以关键词结束的
关键词% : 以关键词开始的

查询结果排序

SELECT FROM WHERE ORDER BY id ASC

ORDER BY 字段 ARC 按照字段升序排列
ORDER BY 字段 DESC 按照字段降序排列
ORDER BY 字段1 ARC,字段2 ARC

PHP 的面向对象

class Person {
  public $name;
  public $age;
  //定义方法
  //构造方法
  function  __construct($name,$age){
    $this->name = $name;
    $this->age = $age;
  }
  function say(){
    echo '我是'. $this->name;
  }
  //析构方法(自动执行)
  function __destruct(){
    echo '完成';
  }
}
$person1 = new Person('enco',18);
$person1->say();
$person1->name;
  • unset () 方法,删掉响应的元素
unset($_POST('id'));

session 和 cookie

  • session 存储在服务器上面的,这样子信息更安全
  • 要在公用文件里面写 $_SESSION || session_start();
  • 要使用session时必须写session_start();因为默认session未开启
$_SESSION['username'] = 要传的值;
//跳转页面
header('Location:./跳转页面相对路径');
  • cookie 存储在本地的
setcookie('username',要传的值,time()+30*24*60*60);//最后传的是cookie保存的有效时间
setcookie('username',要传的值,time()+30*24*60*60);
$_COOKIE['username']; //获取cookie值

php的类的继承

  • parent:: (js中为super())
class DB {
  pretected $dblink;
  public function __construct ($config) {
      $this->dblink = new mysqli($config['host'],$config['user'],$config['passed'],$config['dbname']);
      $this->blink->query('SET NAMES UTF8');  
  }
class news extends DB {
    function __construct ($config){
      parent::__construct ($config);
      var_dump($this->dblink);
  }
}
$config = array('host'=>'localhost','user'=>'root','passwd'=>'168168','dbname'=>'study');
$mynews = new news($config);
}

访问权限控制

  • public 是指外部可以直接访问的属性或者方法
  • protected 是指外部不可以直接访问的属性或者方法,子类可以访问
  • provate 只能自己内部使用的属性或者方法,包括子类也不能使用

php 函数定义

  • 函数默认值
function add($a=0;$b=0){
  return $a+$b;
}
  • 函数不能重复定义

php 常见方法

  • 表单的数据处理
  • 转义函数 addslashes
  • 转实体字符函数 htmlentities(); htmlspecialchars 反转 htmlentitles_decode();
  • 富文本编辑器
  • trim() 清除空格

SESSION 的销毁

unset($_SESSION['id']);
session_destroy();

define 定义一个常量

define('NAME','ecno');
define('NAME','ecno22222');
echo NAME; // 打印enco

定义的常量不能被修改

  • 检查常量是否已经被定义
if(defined('NAME')){
  echo '常量已经被定义';
}

and or oxr 的优先级比等号低

$f = 1 oxr 0;
echo $f; // 这里$f = 1;
$f = (1 oxr 0);
echo $f; // 这里true;

SELECT n.cid, n.ccid, n.title, n.realname, c.cname FROM news AS n
LEFT JOIN category AS c
ON n.ccid = c.id
WHERE n.id > 3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,755评论 3 64
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,137评论 2 38
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,096评论 4 97
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,155评论 29 417
  • 一、数组 1、数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。 $...
    空谷悠阅读 808评论 4 11