W3C PHP学习笔记(基础)

PHP学习笔记(基础)

PHP简介

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP 是一种被广泛使用的开源脚本语言,PHP 脚本在服务器上执行。PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码。PHP 代码在服务器上执行,而结果以纯文本返回浏览器,PHP 文件的后缀是 “.php”。

  1. PHP 能够生成动态页面内容
  2. PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
  3. PHP 能够接收表单数据
  4. PHP 能够发送并取回 cookies
  5. PHP 能够添加、删除、修改数据库中的数据
  6. PHP 能够限制用户访问网站中的某些页面
  7. PHP 能够对数据进行加密

通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像PDF文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。
PHP 脚本可放置于文档中的任何位置。PHP 脚本以 <?php 开头,以 ?> 结尾:
注释:PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
不过在 PHP 中,所有变量都对大小写敏感。
注释:请把变量视为存储数据的容器。

PHP 变量规则:
  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感( y Y 是两个不同的变量)
    注释:PHP 变量名称对大小写敏感!
创建 PHP 变量:

PHP 没有创建变量的命令。变量会在首次为其赋值时被创建。
注释:如果您为变量赋的值是文本,请用引号包围该值。

PHP 是一门类型松散的语言
在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。 PHP 根据它的值,自动把变量转换为正确的数据类型。

PHP 变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:

  • local(局部)
  • global(全局)
  • static(静态)

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

PHP global 关键词
global 关键词用于访问函数内的全局变量。要做到这一点,请在(函数内部)变量前面使用 global 关键词。

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。

PHP static 关键词:

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。要完成这一点,请在您首次声明变量时使用 static 关键词。

在 PHP 中,有两种基本的输出方法:echo 和 print。
echo 和 print 之间的差异:

  • echo - 能够输出一个以上的字符串
  • print - 只能输出一个字符串,并始终返回 1
    提示:echo 比 print 稍快,因为它不返回任何值。
    echo 是一个语言结构,有无括号均可使用:echo 或 echo()。

print 也是语言结构,有无括号均可使用:print 或 print()。

PHP 数据类型:

字符串、整数、浮点数、逻辑、数组、对象、NULL。

PHP 字符串:

字符串是字符序列,比如 “Hello world!”。字符串可以是引号内的任何文本。您可以使用单引号或双引号。

PHP 整数:
整数是没有小数的数字。可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)。

PHP 浮点数:
浮点数是有小数点或指数形式的数字。PHP var_dump() 会返回变量的数据类型和值。

PHP 逻辑:
逻辑是 true 或 false。

PHP 数组:
数组在一个变量中存储多个值。
在下面的例子中,我们将测试不同的数组。PHP var_dump() 会返回变量的数据类型和值:
实例

<?php 
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>
PHP 对象:

对象是存储数据和有关如何处理数据的信息的数据类型。在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型。

PHP NULL 值:

特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。可以通过把值设置为 NULL,将变量清空。

PHP 字符串函数:

PHP strlen() 函数strlen() 函数返回字符串的长度,以字符计。
提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。

PHP strpos() 函数:
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。

<?php
echo strpos("Hello world!","world");
?>

提示:上例中字符串 “world” 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

PHP 常量:

常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
如需设置常量,请使用 define() 函数 - 它使用三个参数:

  1. 首个参数定义常量的名称
  2. 第二个参数定义常量的值
  3. 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。

PHP 字符串运算符
字符串串接

PHP foreach 循环

foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
语法:

foreach ($array as $value) {
  code to be executed;
}
   每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

下面的例子演示的循环将输出给定数组($colors)的值:
实例:

<?php 
$colors = array("red","green","blue","yellow"); 

foreach ($colors as $value) {
  echo "$value <br>";
}
?>

在 PHP 创建用户定义函数:
用户定义的函数声明以关单 “function” 开头:
语法:

function functionName() {
  被执行的代码;
}

注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
在 PHP 中创建数组
在 PHP 中, array() 函数用于创建数组:

array();

在 PHP 中,有三种数组类型:

  • 索引数组 - 带有数字索引的数组
  • 关联数组 - 带有指定键的数组
  • 多维数组 - 包含一个或多个数组的数组

获得数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素数):

GET vs. POST

GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
GET 和 POST 被视作 $_GET$_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。
$_GET 是通过 URL 参数传递到当前脚本的变量数组。
$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

何时使用 GET?
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
GET 可用于发送非敏感的数据。
注释:绝不能使用 GET 来发送密码或其他敏感信息!

何时使用 POST?
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。
不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。
提示:开发者偏爱 POST 来发送表单数据。

表单元素
表单的 HTML 代码是这样的:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

当提交此表单时,通过 method=”post” 发送表单数据。
什么是 $_SERVER["PHP_SELF"] 变量?
$_SERVER["PHP_SELF"] 是一种超全局变量,它返回当前执行脚本的文件名。
因此,$_SERVER["PHP_SELF"] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。
什么是 htmlspecialchars() 函数?
htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 &lt;&gt; 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。

如果避免 $_SERVER["PHP_SELF"] 被利用?
通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"] 被利用。

通过 PHP 验证表单数据
我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量。

在用户提交该表单时,我们还要做两件事:

  1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
  2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值