• WEB安全之PHP基础(一):PHP基本语法格式、数据类型常量以及字符串、运算符、控制语句


    WEB安全之PHP基础(一):PHP基本语法格式、数据类型常量以及字符串、运算符、控制语句

    1.PHP简述

    • PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
      在一个php文件中可以包括以下内容:
      PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
      PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
      PHP 文件的默认文件扩展名是 “.php”
    • php的使用:
      1.PHP 可以生成动态页面内容
      2.PHP 可以创建、打开、读取、写入、关闭服务器上的文件
      3.PHP 可以收集表单数据
      4.PHP 可以发送和接收 cookies
      5.PHP 可以添加、删除、修改您的数据库中的数据
      6.PHP 可以限制用户访问您的网站上的一些页面
      7.PHP 可以加密数据

    2.基本语法格式

    • PHP 脚本以 结束
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 访问本地80端口,表示php study调试成功
      在这里插入图片描述
    • PHP Storm是编写PHP的集成工具
    • 新建网站,做练习用
      在这里插入图片描述
    • 此时网址是访问本地的
      在这里插入图片描述

    在这里插入图片描述

    • 测试环境是否搭建好
      在这里插入图片描述
      在这里插入图片描述
    • 非规范,可执行
      在这里插入图片描述
      在这里插入图片描述
    • 注释
      在这里插入图片描述
    • 变量名
      在这里插入图片描述
    • .作为拼接,static静态变量
    • 函数中调用该关键字,某个局部变量不要被删除。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 不加static,运行一次变量消失,仍为1
      在这里插入图片描述
      在这里插入图片描述

    3.数据类型、常量以及字符串

    • php有5种数据类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • " "阔起字符串
      在这里插入图片描述
      在这里插入图片描述
    • 整型
      在这里插入图片描述
      在这里插入图片描述
    • 浮点型
      在这里插入图片描述
    • 布尔型
      在这里插入图片描述
    • 打印数组
      在这里插入图片描述
      在这里插入图片描述
    • 声明对象
      在这里插入图片描述
    • null类型
      在这里插入图片描述
    • 字典
      在这里插入图片描述
      在这里插入图片描述
    • 常量:常量是一个简单值的标识符。该值在脚本中不能改变。(在整个脚本中都能使用)
    • 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
      设置常量,使用 define() 函数,函数语法如下:
    • bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
        该函数有三个参数:
      name:必选参数,常量名称,即标志符。
      value:必选参数,常量的值。
      case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 默认false,区分大小写,不区分可以加true

    • @屏蔽符号,不会报错
      在这里插入图片描述
      在这里插入图片描述

    • 预定义常量
      PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。

    • (1)FILE(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么  它的值就是被引用的文件,而不是引用它的那个文件。
      (2)LINE(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。
      (3)PHP_VERSION:当前PHP预处理器的版本,如5.4.16。
      (4)PHP_OS: PHP所在的操作系统的类型。如Linux。
      (5)TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。
      (6)DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ \ ”。

    ";
    echo __LINE__;
    echo "
    "; echo PHP_VERSION; echo "
    "; echo PHP_OS; echo "
    "; echo DIRECTORY_SEPARATOR; ?>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 在这里插入图片描述
      在这里插入图片描述

    • 脚本位置

    • 换行

    • 行号

    • php版本

    • 系统

    • 用哪个目录分割符

    • 整型
      整数类型:保存整数数值(范围限制),4个字节存储数据。PHP中默认为有符号。
      在PHP中提供四种整形的定义方式,十进制定义,二进制定义,八进制定义和十六进制定义

    $a = 120 //十进制
    $a = 0b110 //二进制
    $a = 0120 	//八进制
    $a = 0x120	//十六进制
    
    // 使用echo输出时。默认输出为十进制
    decbin() // 十进制转二进制
    decoct() // 十进制转八进制
    dechex() // 十进制转十六进制
    bindec() // 二进制转十进制
    bin2hex() //二进制转十六进制    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 输出为二进制
      在这里插入图片描述
    • 自动转为整型
      在这里插入图片描述
      在这里插入图片描述
    • 将十六进制转换成十进制输出
      在这里插入图片描述
      在这里插入图片描述
    • 字符串:字符串变量用于存储并处理文本。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 第一个可以显示name,第二个不可以显示name;
    • 单引号内有变量仍然识别为字符串
      在这里插入图片描述
      在这里插入图片描述
    • strlen返统计字符串有多少个字符
      在这里插入图片描述
      在这里插入图片描述
    • 在这里插入图片描述
      在这里插入图片描述
    • 去掉空格,trim
      在这里插入图片描述
    • 查找字符串,返回位置,strpos
      在这里插入图片描述
      在这里插入图片描述
    • 字符串截取函数,substr
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 中文有时会乱码
    • md5加密
      在这里插入图片描述
    • 一般作为网站加密存到数据库的字符串
      在这里插入图片描述
    • 通过下标取字符的值
      在这里插入图片描述
      在这里插入图片描述
    • 全部取出来,遍历字符串
      在这里插入图片描述
      在这里插入图片描述
    • 加换行符遍历
      在这里插入图片描述
      在这里插入图片描述
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    // A code block
    var foo = 'bar';
    
    • 1
    • 2
    • 字符的操作函数
      addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
      addslashes — 使用反斜线引用字符串
      bin2hex — 函数把包含数据的二进制字符串转换为十六进制值
      chop — rtrim 的别名
      chr — 返回指定的字符
      chunk_split — 将字符串分割成小块
      convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种
      convert_uudecode — 解码一个 uuencode 编码的字符串
      convert_uuencode — 使用 uuencode 编码一个字符串
      count_chars — 返回字符串所用字符的信息
      crc32 — 计算一个字符串的 crc32 多项式
      crypt — 单向字符串散列
      echo — 输出一个或多个字符串
      explode — 使用一个字符串分割另一个字符串
      fprintf — 将格式化后的字符串写入到流
      get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 后的转换表
      hebrev — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew)
      hebrevc — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符
      hex2bin — 转换十六进制字符串为二进制字符串
      html_entity_decode — Convert HTML entities to their corresponding characters
      htmlentities — 将字符转换为 HTML 转义字符
      htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
      htmlspecialchars — 将特殊字符转换为 HTML 实体
      implode — 将一个一维数组的值转化为字符串
      join — 别名 implode
      lcfirst — 使一个字符串的第一个字符小写
      levenshtein — 计算两个字符串之间的编辑距离
      localeconv — Get numeric formatting information
      ltrim — 删除字符串开头的空白字符(或其他字符)
      md5_file — 计算指定文件的 MD5 散列值
      md5 — 计算字符串的 MD5 散列值
      metaphone — Calculate the metaphone key of a string
      money_format — 将数字格式化成货币字符串
      nl_langinfo — Query language and locale information
      nl2br — 在字符串所有新行之前插入 HTML 换行标记
      number_format — 以千位分隔符方式格式化一个数字
      ord — 转换字符串第一个字节为 0-255 之间的值
      parse_str — 将字符串解析成多个变量
      print — 输出字符串
      printf — 输出格式化字符串
      quoted_printable_decode — 将 quoted-printable 字符串转换为 8-bit 字符串
      quoted_printable_encode — 将 8-bit 字符串转换成 quoted-printable 字符串
      quotemeta — 转义元字符集
      rtrim — 删除字符串末端的空白字符(或者其他字符)
      setlocale — 设置地区信息
      sha1_file — 计算文件的 sha1 散列值
      sha1 — 计算字符串的 sha1 散列值
      similar_text — 计算两个字符串的相似度
      soundex — Calculate the soundex key of a string
      sprintf — Return a formatted string
      sscanf — 根据指定格式解析输入的字符
      str_contains — Determine if a string contains a given substring
      str_ends_with — Checks if a string ends with a given substring
      str_getcsv — 解析 CSV 字符串为一个数组
      str_ireplace — str_replace 的忽略大小写版本
      str_pad — 使用另一个字符串填充字符串为指定长度
      str_repeat — 重复一个字符串
      str_replace — 子字符串替换
      str_rot13 — 对字符串执行 ROT13 转换
      str_shuffle — 随机打乱一个字符串
      str_split — 将字符串转换为数组
      str_starts_with — Checks if a string starts with a given substring
      str_word_count — 返回字符串中单词的使用情况
      strcasecmp — 二进制安全比较字符串(不区分大小写)
      strchr — 别名 strstr
      strcmp — 二进制安全字符串比较
      strcoll — 基于区域设置的字符串比较
      strcspn — 获取不匹配遮罩的起始子字符串的长度
      strip_tags — 从字符串中去除 HTML 和 PHP 标记
      stripcslashes — 反引用一个使用 addcslashes 转义的字符串
      stripos — 查找字符串首次出现的位置(不区分大小写)
      stripslashes — 反引用一个引用字符串
      stristr — strstr 函数的忽略大小写版本
      strlen — 获取字符串长度
      strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写)
      strnatcmp — 使用自然排序算法比较字符串
      strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写)
      strncmp — 二进制安全比较字符串开头的若干个字符
      strpbrk — 在字符串中查找一组字符的任何一个字符
      strpos — 查找字符串首次出现的位置
      strrchr — 查找指定字符在字符串中的最后一次出现
      strrev — 反转字符串
      strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
      strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
      strspn — 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度。
      strstr — 查找字符串的首次出现
      strtok — 标记分割字符串
      strtolower — 将字符串转化为小写
      strtoupper — 将字符串转化为大写
      strtr — 转换指定字符
      substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)
      substr_count — 计算字串出现的次数
      substr_replace — 替换字符串的子串
      substr — 返回字符串的子串
      trim — 去除字符串首尾处的空白字符(或者其他字符)
      ucfirst — 将字符串的首字母转换为大写
      ucwords — 将字符串中每个单词的首字母转换为大写
      vfprintf — 将格式化字符串写入流
      vprintf — 输出格式化字符串
      vsprintf — 返回格式化字符串
      wordwrap — 打断字符串为指定数量的字串

    4.运算符

    • 基本运算符:
      在这里插入图片描述
    • 赋值运算符:
      在这里插入图片描述
    • 递增/递减运算符:
      在这里插入图片描述
    • 比较运算符:
      在这里插入图片描述
    • 逻辑运算符:
      在这里插入图片描述
    • 三元运算符:
      (expr1) ? (expr2) : (expr3)

    5.控制语句

    • 控制语法的语句结构和其他大多数语言结构相同,有以下两类:

    5.1.条件控制语句

    • if 语句 - 在条件成立时执行代码
      if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
      if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
      switch 语句 - 在若干条件之一成立时执行一个代码块

    5.2.循环控制语句

    while - 只要指定的条件成立,则循环执行代码块
    do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
    for - 循环执行代码块指定的次数
    foreach - 根据数组中每个元素来循环代码块

    • break语句用于终止本次循环
      continue语句的作用是跳出本次循环,接着执行下一次循环
  • 相关阅读:
    备战2024秋招面试题-对比Java、Go和Python
    反射和序列化操作会破坏单例模式
    [性能优化] 使用 esbuild 为你的构建提速
    关于allatori代码混淆技术的一次实践
    【暑期每日一题】洛谷 P8301 [CoE R4 A/Stoi2041] 娘子
    【面试高频题】难度 1/5,经典树的搜索(多语言)
    voc转YOLO格式
    SpikingJelly笔记之延迟编码
    如何避免无效的沟通
    react传参有哪些常用方法?--Props,Context API和Redux全局管理
  • 原文地址:https://blog.csdn.net/weixin_44891093/article/details/127392859