PHP学习记录
来源:互联网 发布:网络备案登记管理规定 编辑:程序博客网 时间:2024/05/20 14:20
PHP学习记录
http://www.w3school.com.cn/php/php_quiz.asp
引入PHP文件**
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本include 只生成警告(E_WARNING),并且脚本会继续
AJAX获取前端数据**
$username=$_POST['name'];$username=$_GET['name'];
AJAX返回数据**
$this->ajaxReturn($User)
超全局变量**
$GLOBALS这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。$GLOBALS['z']=5; echo $z; $_SERVER$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。$_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。$_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。$_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。$_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)$_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。$_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。$_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。$_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。$_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。$_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。$_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。$_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。$_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。$_SERVER['SCRIPT_URI'] 返回当前页面的 URI。$_REQUESTPHP $_REQUEST 用于收集 HTML 表单提交的数据。<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form><?php $name = $_REQUEST['fname']; echo $name; ?>$_POST <form action="welcome.php" method="post">Name: <input type="text" name="name"><br>E-mail: <input type="text" name="email"><br><input type="submit"></form>Welcome <?php echo $_POST["name"]; ?><br>Your email address is: <?php echo $_POST["email"]; ?>$_GET<a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>echo "Study " . $_GET['subject'] . " at " . $_GET['web']; $_FILES $_ENV $_COOKIE $_SESSION
循环对象**
创建对象$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");$age['Peter']="35";$age['Ben']="37";$age['Joe']="43";排序:$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");ksort($age);function print_vars($obj) { foreach (get_object_vars($obj) as $prop => $val) { echo "\t$prop = $val\n"; }}
字符串**
strlen() 函数返回字符串的长度,以字符计。strlen("Hello world!");strpos() 函数用于检索字符串内指定的字符或文本。如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。echo strpos("Hello world!","world");如需设置常量,请使用 define() 函数 - 它使用三个参数:define("GREETING", "Welcome to W3School.com.cn!");echo GREETING;
数组**
定义数组$cars=array("Volvo","BMW","SAAB");多维数组:$cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );数组个数count($cars);循环数组$cars=array("Volvo","BMW","SAAB");$arrlength=count($cars);for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>";}数组排列$cars=array("Volvo","BMW","SAAB");sort($cars); rsort($cars)foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。$colors = array("red","green","blue","yellow"); foreach ($colors as $value) { echo "$value <br>";}array() 创建数组。array_change_key_case() 把数组中所有键更改为小写或大写。array_chunk() 把一个数组分割为新的数组块。array_column() 返回输入数组中某个单一列的值。array_combine() 通过合并两个数组来创建一个新数组。array_count_values() 用于统计数组中所有值出现的次数。array_diff() 比较数组,返回差集(只比较键值)。array_diff_assoc() 比较数组,返回差集(比较键名和键值)。array_diff_key() 比较数组,返回差集(只比较键名)。array_diff_uassoc() 比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。array_diff_ukey() 比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。array_fill() 用给定的键值填充数组。array_fill_keys() 用指定键名的给定键值填充数组。array_filter() 用回调函数过滤数组中的元素。array_flip() 交换数组中的键和值。array_intersect() 比较数组,返回交集(只比较键值)。array_intersect_assoc() 比较数组,返回交集(比较键名和键值)。array_intersect_key() 比较数组,返回交集(只比较键名)。array_intersect_uassoc() 比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。array_intersect_ukey() 比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。array_key_exists() 检查指定的键名是否存在于数组中。array_keys() 返回数组中所有的键名。array_map() 把数组中的每个值发送到用户自定义函数,返回新的值。array_merge() 把一个或多个数组合并为一个数组。array_merge_recursive() 递归地合并一个或多个数组。array_multisort() 对多个数组或多维数组进行排序。array_pad() 用值将数组填补到指定长度。array_pop() 删除数组的最后一个元素(出栈)。array_product() 计算数组中所有值的乘积。array_push() 将一个或多个元素插入数组的末尾(入栈)。array_rand() 返回数组中一个或多个随机的键。array_reduce() 通过使用用户自定义函数,以字符串返回数组。array_replace() 使用后面数组的值替换第一个数组的值。array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。array_reverse() 以相反的顺序返回数组。array_search() 搜索数组中给定的值并返回键名。array_shift() 删除数组中首个元素,并返回被删除元素的值。array_slice() 返回数组中被选定的部分。array_splice() 删除并替换数组中指定的元素。array_sum() 返回数组中值的和。array_udiff() 比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。array_udiff_assoc() 比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。array_udiff_uassoc() 比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。array_uintersect() 比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。array_uintersect_assoc() 比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。array_uintersect_uassoc() 比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。array_unique() 删除数组中的重复值。array_unshift() 在数组开头插入一个或多个元素。array_values() 返回数组中所有的值。array_walk() 对数组中的每个成员应用用户函数。array_walk_recursive() 对数组中的每个成员递归地应用用户函数。arsort() 对关联数组按照键值进行降序排序。asort() 对关联数组按照键值进行升序排序。compact() 创建包含变量名和它们的值的数组。count() 返回数组中元素的数目。current() 返回数组中的当前元素。each() 返回数组中当前的键/值对。end() 将数组的内部指针指向最后一个元素。extract() 从数组中将变量导入到当前的符号表。in_array() 检查数组中是否存在指定的值。key() 从关联数组中取得键名。krsort() 对数组按照键名逆向排序。ksort() 对数组按照键名排序。list() 把数组中的值赋给一些变量。natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。natsort() 用“自然排序”算法对数组排序。next() 将数组中的内部指针向前移动一位。pos() current() 的别名。prev() 将数组的内部指针倒回一位。range() 创建包含指定范围单元的数组。reset() 将数组的内部指针指向第一个元素。rsort() 对数组逆向排序。shuffle() 将数组打乱。sizeof() count() 的别名。sort() 对数组排序。uasort() 使用用户自定义的比较函数对数组中的键值进行排序。uksort() 使用用户自定义的比较函数对数组中的键名进行排序。usort() 使用用户自定义的比较函数对数组进行排序。
函数**
function familyName($fname,$year) { echo "$fname Zhang. Born in $year <br>";}familyName("Li","1975");familyName("Hong","1978");familyName("Tao","1983");echo "今天是 " . date("Y/m/d") . "<br>";今天是 2017/04/26echo "今天是 " . date("Y.m.d") . "<br>";今天是 2017.04.26echo "今天是 " . date("Y-m-d") . "<br>";今天是 2017-04-26echo "今天是 " . date("l");今天是 Wednesdayecho "当前时间是 " . date("h:i:sa");当前时间是 02:58:17pmmktime() 函数返回日期的 Unix 时间戳mktime(hour,minute,second,month,day,year)$d=mktime(9, 12, 31, 6, 10, 2015);echo "创建日期是 " . date("Y-m-d h:i:sa", $d) 创建日期是 2015-06-10 09:12:31amstrtotime(time,now) 函数创建日期和时间:$d=strtotime("tomorrow");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("next Saturday");echo date("Y-m-d h:i:sa", $d) . "<br>";$d=strtotime("+3 Months");echo date("Y-m-d h:i:sa", $d) . "<br>";$d1=strtotime("December 31");$d2=ceil(($d1-time())/60/60/24);echo "距离十二月三十一日还有:" . $d2 ." 天。"; 距离十二月三十一日还有:249 天。处理异常function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; }//在 "try" 代码块中触发异常try { checkNum(2); //If the exception is thrown, this text will not be shown echo 'If you see this, the number is 1 or below'; }//捕获异常catch(Exception $e) { echo 'Message: ' .$e->getMessage(); }
文件处理函数**
readfile() 函数读取文件,并把它写入输出缓冲。echo readfile("webdictionary.txt");fopen() 的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式模式 描述r 打开文件为只读。文件指针在文件的开头开始。w 打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。a 打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。x 创建新文件为只写。返回 FALSE 和错误,如果文件已存在。r+ 打开文件为读/写、文件指针在文件开头开始。w+ 打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。a+ 打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。x+ 创建新文件为读/写。返回 FALSE 和错误,如果文件已存在fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。fread($myfile,filesize("webdictionary.txt"));fclose() 函数用于关闭打开的文件$myfile = fopen("webdictionary.txt", "r");// some code to be executed....fclose($myfile);fgets() 函数用于从文件读取单行。逐行读取 "webdictionary.txt" 文件$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 输出单行直到 end-of-filewhile(!feof($myfile)) { echo fgets($myfile) . "<br>";}fclose($myfile);fgetc() 函数用于从文件中读取单个字符。$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 输出单字符直到 end-of-filewhile(!feof($myfile)) { echo fgetc($myfile);}fclose($myfile);fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");$txt = "Bill Gates\n";fwrite($myfile, $txt);$txt = "Steve Jobs\n";fwrite($myfile, $txt);fclose($myfile);
文件上传**
上传限制if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } }else { echo "Invalid file"; }保存被上传的文件<?phpif ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } }else { echo "Invalid file"; }?>$_FILES["file"]["name"] - 被上传文件的名称$_FILES["file"]["type"] - 被上传文件的类型$_FILES["file"]["size"] - 被上传文件的大小,以字节计$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称$_FILES["file"]["error"] - 由文件上传导致的错误代码
Cookie **
Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用
session_start() 函数必须位于 <html> 标签之前:session_start();// store session data$_SESSION['views']=1;终结 Sessionunset($_SESSION['views']);session_destroy();session_destroy() 将重置 session,您将失去所有已存储的 session 数据。
安全性**
htmlspecialchars() 函数把特殊字符转换为 HTML 实体<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">我们能够通过 test_input() 函数检查每个 $_POST 变量,脚本是这样的:$name = $email = $gender = $comment = $website = "";if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = test_input($_POST["name"]); $email = test_input($_POST["email"]); $website = test_input($_POST["website"]); $comment = test_input($_POST["comment"]); $gender = test_input($_POST["gender"]);}function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data;}
PHP 过滤器(Filter)**
filter_var() - 通过一个指定的过滤器来过滤单一的变量filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量filter_input - 获取一个输入变量,并对它进行过滤filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤filter_var($int, FILTER_VALIDATE_INT)
PHP 数据库**
连接到一个 MySQL 数据库 mysql_connect(servername,username,password);$con = mysql_connect("localhost","peter","abc123");创建数据库 mysql_query("CREATE DATABASE my_db",$con)完整例子$con = mysql_connect("localhost","peter","abc123");//链接数据库if (!$con) { die('Could not connect: ' . mysql_error()); }// Create databaseif (mysql_query("CREATE DATABASE my_db",$con))//创建数据库 { echo "Database created"; }else { echo "Error creating database: " . mysql_error(); }// Create table in my_db databasemysql_select_db("my_db", $con);//选择数据库$sql = "CREATE TABLE Persons (FirstName varchar(15),LastName varchar(15),Age int)";mysql_query($sql,$con);//创建表mysql_close($con);//关闭链接主键自增的表$sql = "CREATE TABLE Persons (personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID),FirstName varchar(15),LastName varchar(15),Age int)";mysql_query($sql,$con);插入数据mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')")查询数据$result = mysql_query("SELECT * FROM Persons");$result = mysql_query("SELECT * FROM PersonsWHERE FirstName='Peter' ORDER BY age ");修改数据mysql_query("UPDATE Persons SET Age = '36'WHERE FirstName = 'Peter' AND LastName = 'Griffin'");删除表mysql_query("DELETE FROM Persons WHERE LastName='Griffin'");
ODBC 数据库**
<?php$conn=odbc_connect('northwind','','');if (!$conn) {exit("Connection Failed: " . $conn);}$sql="SELECT * FROM customers";$rs=odbc_exec($conn,$sql);if (!$rs) {exit("Error in SQL");}echo "<table><tr>";echo "<th>Companyname</th>";echo "<th>Contactname</th></tr>";while (odbc_fetch_row($rs)){ $compname=odbc_result($rs,"CompanyName"); $conname=odbc_result($rs,"ContactName"); echo "<tr><td>$compname</td>"; echo "<td>$conname</td></tr>";}odbc_close($conn);echo "</table>";?>
0 0
- php 学习记录
- php学习记录1
- PHP 学习使用记录
- PHP正则学习记录
- PHP学习记录
- php学习记录 jsonp
- php学习记录
- PHP学习记录1
- PHP学习记录2
- php学习记录
- PHP学习记录
- php学习记录
- PHP学习书籍记录
- php 学习记录
- PHP学习记录
- PHP学习记录
- PHP学习记录
- PHP学习记录
- C++面试题:类得继承与访问
- CenOS7安装JDK与MySQL、Tomcat、TomEE(Opentext Process Platform安装实践之准备篇)
- phpcms配制文件目录位置
- RobotFramework测试问题二:各种元素不能定位问题
- 自定义字符串定长大小判断my_strncmp()
- PHP学习记录
- Java UDP网络编程
- JSP九大内置对象
- GMTC全球移动技术大会2017专题专场介绍
- volatile关键字原理
- JAVA语言循环结束语句不同于C++之处-break,continue 标签
- 近期面试经历(一)
- JSP、JS和HTML的区别
- 欢迎使用CSDN-markdown编辑器