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"] - 由文件上传导致的错误代码

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
原创粉丝点击