博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php常用知识集锦
阅读量:6484 次
发布时间:2019-06-23

本文共 8321 字,大约阅读时间需要 27 分钟。

php常用知识集锦

很多位置都有写好的代码,自己做项目的时候可以直接拿来用,而不用自己写,比如现在看到的菜鸟教程。

1、判断是否为空

empty($_POST["name"])

 

2、检测邮箱是否合法,判断正则表达式

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))

 

3、下拉菜单

1 
2
8
9

调用的时候直接调用q这个名字

1 
http://www.runoob.com'; 6 } else if($q =='GOOGLE') { 7 echo 'Google 搜索
http://www.google.com'; 8 } else if($q =='TAOBAO') { 9 echo '淘宝
http://www.taobao.com';10 }11 } else {12 ?>

isset函数的使用,已经看到了很多这样的句式了

 

4、php日期

直接date()函数加格式就好

1 
";3 echo date("Y.m.d") . "
";4 echo date("Y-m-d");5 ?>

 

5、php包含

PHP include 和 require 语句

在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。

include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

  • require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
  • include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

 

 1 include 'filename'; 2 3 或者 4 5 require 'filename'; 

 

6、php文件处理

fopen() 函数用于在 PHP 中打开文件。

 1 <?php 2 $file=fopen("welcome.txt","r"); 3 ?> 

 <?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); ?> 

 <?php $file = fopen("test.txt","r"); //执行一些代码 fclose($file); ?> 

 if (feof($file)) echo "文件结尾"; 

 

当忘记用法的时候可以多参照教程。

 

7、php文件上传

创建一个文件上传表单

允许用户从表单上传文件是非常有用的。

请看下面这个供上传文件的 HTML 表单:

1  2  3 
4 菜鸟教程(runoob.com) 5 6 7 8
9
10
11
12
13 14 15

将以上代码保存到 form.html 文件中。

有关上面的 HTML 表单的一些注意项列举如下:

  • <form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
  • <input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。


创建上传脚本

"upload_file.php" 文件含有供上传文件的代码:

1 
0) 3 { 4 echo "错误:" . $_FILES["file"]["error"] . "
"; 5 } 6 else 7 { 8 echo "上传文件名: " . $_FILES["file"]["name"] . "
"; 9 echo "文件类型: " . $_FILES["file"]["type"] . "
";10 echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB
";11 echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];12 }13 ?>

通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件

第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。如下所示:

  • $_FILES["file"]["name"] - 上传文件的名称
  • $_FILES["file"]["type"] - 上传文件的类型
  • $_FILES["file"]["size"] - 上传文件的大小,以字节计
  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
  • $_FILES["file"]["error"] - 由文件上传导致的错误代码

这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关允许哪些用户上传文件的限制。

 

8、php Cookie

用法 :

setcookie(name, value, expire, path, domain); 

设置失效时间:

取出cookie的值:

1 

 

 

9、PHP Session

Session用于知道你是谁

Cookie用于存储你的用户信息

您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。

PHP session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。

Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量UID 存储在 cookie 中,或者通过 URL 进行传导。

 

利用session来统计访问量:

在下面的实例中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则创建 "views" 变量,并把它设置为 1:

1 

 

 

10、php发送电子邮件

PHP mail() 函数用于从脚本中发送电子邮件。

语法

mail(to,subject,message,headers,parameters)
参数 描述
to 必需。规定 email 接收者。
subject 必需。规定 email 的主题。注释:该参数不能包含任何新行字符。
message 必需。定义要发送的消息。应使用 LF (\n) 来分隔各行。每行应该限制在 70 个字符内。
headers 可选。规定附加的标题,比如 From、Cc 和 Bcc。应当使用 CRLF (\r\n) 分隔附加的标题。
parameters 可选。对邮件发送程序规定额外的参数。

注释:PHP 运行邮件函数需要一个已安装且正在运行的邮件系统(如:sendmail、postfix、qmail等)。所用的程序通过在 php.ini 文件中的配置设置进行定义。请在我们的  阅读更多内容。

PHP 简易 E-Mail

通过 PHP 发送电子邮件的最简单的方式是发送一封文本 email。

在下面的实例中,我们首先声明变量($to, $subject, $message, $from, $headers),然后我们在 mail() 函数中使用这些变量来发送了一封 E-mail:

1 

直接这样是发不过去的,会有如下错误提示消息,其实也就是25端口和smtp邮件服务器都没有打开

Warning: mail() []: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\2017-02-21--SoftWare\PHP\SOFTWARE\phpStudy\WWW\Demo\PHPDemo\PHP13\mailTest.php on line 7

邮件已发送

 

11、php错误处理

在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。

简单的 "die()" 语句用于错误检测

1 

 

12、php异常

异常的基本使用

当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。

如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。

让我们尝试抛出一个异常,同时不去捕获它:

1 
1) 6 { 7 throw new Exception("Value must be 1 or below"); 8 } 9 return true;10 }11 12 // 触发异常13 checkNum(2);14 ?>

上面的代码会得到类似这样的一个错误:

Fatal error: Uncaught exception 'Exception' with message 'Value must be 1 or below' in /www/runoob/test/test.php:7 Stack trace: #0 /www/runoob/test/test.php(13): checkNum(2) #1 {main} thrown in /www/runoob/test/test.php on line 7

Try、throw 和 catch

要避免上面实例中出现的错误,我们需要创建适当的代码来处理异常。

适当的处理异常代码应该包括:

  1. Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  2. Throw - 里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"。
  3. Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。

让我们触发一个异常:

1 
1) 6 { 7 throw new Exception("变量值必须小于等于 1"); 8 } 9 return true;10 }11 12 // 在 try 块 触发异常13 try14 {15 checkNum(2);16 // 如果抛出异常,以下文本不会输出17 echo '如果输出该内容,说明 $number 变量';18 }19 // 捕获异常20 catch(Exception $e)21 {22 echo 'Message: ' .$e->getMessage();23 }24 ?>

上面代码将得到类似这样一个错误:

Message: 变量值必须小于等于 1

实例解释:

上面的代码抛出了一个异常,并捕获了它:

  1. 创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
  2. 在 "try" 代码块中调用 checkNum() 函数。
  3. checkNum() 函数中的异常被抛出。
  4. "catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
  5. 通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息。

然而,为了遵循 "每个 throw 必须对应一个 catch" 的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。

 

13、php过滤器

PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。

函数和过滤器

如需过滤变量,请使用下面的过滤器函数之一:

  • filter_var() - 通过一个指定的过滤器来过滤单一的变量
  • filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
  • filter_input - 获取一个输入变量,并对它进行过滤
  • filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

在下面的实例中,我们用 filter_var() 函数验证了一个整数:

实例

上面的代码使用了 "FILTER_VALIDATE_INT" 过滤器来过滤变量。由于这个整数是合法的,因此上面的代码将输出:

如果我们尝试使用一个非整数的变量(比如 "123abc"),则将输出:"Integer is not valid"。

如需查看完整的函数和过滤器列表,请访问我们的 。

 

检测一个数字是否在一个范围内

以下实例使用了 filter_var() 函数来检测一个 INT 型的变量是否在 1 到 200 内:

1 
array("min_range"=>$min, "max_range"=>$max))) === false) { 7 echo("变量值不在合法范围内"); 8 } else { 9 echo("变量值在合法范围内");10 }11 ?>

 

 

14、PHP JSON

 

JSON 函数

函数 描述
json_encode 对变量进行 JSON 编码
json_decode 对 JSON 格式的字符串进行解码,转换为 PHP 变量
json_last_error 返回最后发生的错误

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

string json_encode ( $value [, $options = 0 ] )
  • value: 要编码的值。该函数只对 UTF-8 编码的数据有效。
  • options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT

以下实例演示了如何将 PHP 数组转换为 JSON 格式数据:

1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr);?>

以上代码执行结果为:

{"a":1,"b":2,"c":3,"d":4,"e":5}

 

 

15、PHP连接数据库的方式

PHP 5 及以上版本建议使用以下方式连接 MySQL :

  • MySQLi extension ("i" 意为 improved)
  • PDO (PHP Data Objects)

MySQLi 和 PDO 有它们自己的优势:

PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。

所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部分查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新编写所有代码,包括查询。

两者都是面向对象, 但 MySQLi 还提供了 API 接口。

两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。

 

实例 (MySQLi - 面向对象)

1 
connect_error) {11 die("连接失败: " . $conn->connect_error);12 } 13 echo "连接成功";14 ?>

实例 (MySQLi - 面向过程)

1 

哦!!面向对象和面向过程的连接是一个是对象,一个只是普通的函数(像我们以往的连接方法,面向过程)。

 

 

16、PHP MySQL 预处理语句

INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)

预处理语句对于防止 MySQL 注入是非常有用的。

 

17、php操作xml

三种方式:

XML Expat Parser

XML DOM

XML SimpleXML

SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。

与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据

SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:

PHP SimpleXML 实例

假设我们有如下的 XML 文件,"":

<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

现在我们想要输出上面的 XML 文件的不同信息:

实例 1

输出 $xml 变量(是 SimpleXMLElement 对象)的键和元素:

<?php $xml=simplexml_load_file("note.xml"); print_r($xml); ?>

以上代码将输出:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

 

 

18、PHP与AJAX

ajax实例

PHP – AJAX 与 PHP | 菜鸟教程

http://www.runoob.com/php/php-ajax-php.html

当用户在上面的输入框中键入字符时,会执行 "showHint()" 函数。该函数由 "onkeyup" 事件触发:

1  2  3 32 33 34 35 

在输入框中输入一个姓名:

36
37 姓名:
38
39

返回值:

40 41 42

 

源代码解释:

如果输入框是空的(str.length==0),该函数会清空 txtHint 占位符的内容,并退出该函数。

如果输入框不是空的,那么 showHint() 会执行以下步骤:

  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含输入框的内容)

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8553317.html

你可能感兴趣的文章
JS动态事件绑定问题
查看>>
在WPF应用程序中利用IEditableObject接口实现可撤销编辑的对象
查看>>
android 8 wifi wifi 扫描过程
查看>>
phalcon的save方法保存失败?
查看>>
获取任意链接文章正文 API 功能简介
查看>>
js中Math.random()生成指定范围数值的随机数
查看>>
线程类的常见方法介绍
查看>>
Spring连接数据库的几种常用的方式
查看>>
MS CRM 2011 Schedule Report & Email Subscription
查看>>
Linux2.6内核驱动移植参考
查看>>
去哪儿搜索引擎QSearch设计与实现
查看>>
POJ 2255 Tree Recovery (二叉树)
查看>>
HDU 1026 Ignatius and the Princess I
查看>>
There are two ways for Datatable download as excel
查看>>
TextBox客户端JS赋值 后台获取(转载)
查看>>
PCA误差
查看>>
烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性
查看>>
抽象类详解
查看>>
《Oracle高性能自动化运维》一一2.2 队列锁(Enqueue Lock)
查看>>
《jQuery Mobile入门经典》—— 2.3 使用JavaScript完成功能
查看>>