沉淀再出发:PHP的中级内容
沉淀再出發(fā):PHP的中級(jí)內(nèi)容
一、前言
??? 前面我們介紹了PHP的簡(jiǎn)單的語法知識(shí)以及相關(guān)的用法,接下來我們將PHP+mysql以及PHP+ajax結(jié)合起來進(jìn)行研究。
二、PHP+mysql
??? 首先我們看一段代碼:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <?php 9 $con=mysqli_connect("127.0.0.1","root",""); 10 // Check connection 11 if (mysqli_connect_errno()) 12 { 13 echo "Failed to connect to MySQL: " . mysqli_connect_error(); 14 } 15 16 // Create database 17 $sql="CREATE DATABASE zyr_db"; 18 if (mysqli_query($con,$sql)) 19 { 20 echo "Database zyr_db created successfully"; 21 echo '<br>'; 22 mysqli_close($con); 23 } 24 else 25 { 26 echo "Error creating database: " . mysqli_error($con); 27 echo '<br>'; 28 } 29 30 $con=mysqli_connect("127.0.0.1","root","","zyr_db"); 31 // Check connection 32 if (mysqli_connect_errno()) 33 { 34 echo "Failed to connect to MySQL: " . mysqli_connect_error(); 35 echo '<br>'; 36 } 37 38 // Create table 39 $sql="CREATE TABLE Persons(FirstName CHAR(30),LastName CHAR(30),Age INT)"; 40 41 // Execute query 42 if (mysqli_query($con,$sql)) 43 { 44 echo "Table persons created successfully"; 45 echo '<br>'; 46 } 47 else 48 { 49 echo "Error creating table: " . mysqli_error($con); 50 echo '<br>'; 51 } 52 53 mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) VALUES ('zyr', 'lsx',24)"); 54 mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) VALUES ('xiaohong', 'xiaoming',30)"); 55 echo "after INSERT..."; 56 echo "<br>"; 57 findAllPeoples($con); 58 59 echo "find by firstname ..."; 60 echo "<br>"; 61 findPeopleById("zyr",$con); 62 63 mysqli_query($con,"UPDATE Persons SET Age=25 WHERE FirstName='zyr' AND LastName='lsx'"); 64 echo "after UPDATE..."; 65 echo "<br>"; 66 findAllPeoples($con); 67 68 mysqli_query($con,"DELETE FROM Persons"); 69 echo "after delete..."; 70 echo "<br>"; 71 findAllPeoples($con); 72 mysqli_close($con); 73 74 function findPeopleById($name,$con){ 75 $result = mysqli_query($con,"SELECT * FROM Persons WHERE FirstName = ". "'" .$name."'"); 76 77 while($row = mysqli_fetch_array($result)) 78 { 79 echo $row['FirstName'] . " " . $row['LastName'] ." ".$row['Age']; 80 echo "<br>"; 81 } 82 } 83 function findAllPeoples($con){ 84 $result = mysqli_query($con,"SELECT * FROM Persons"); 85 86 while($row = mysqli_fetch_array($result)) 87 { 88 echo $row['FirstName'] . " " . $row['LastName'] ." ".$row['Age']; 89 echo "<br>"; 90 } 91 } 92 ?> 93 94 </body> 95 </html>??? 在我們安裝的wamp中,mysql數(shù)據(jù)庫默認(rèn)的用戶名為root,密碼為空,因此我們可以連接數(shù)據(jù)庫了,除此之外和其它數(shù)據(jù)庫一樣,mysql的數(shù)據(jù)庫操作方法,想必大家都是了如指掌的,并且在PHP之中對(duì)于所有的sql操作都做了封裝,我們只需要修改或者組合簡(jiǎn)單的sql語句就能夠進(jìn)行創(chuàng)建、刪除數(shù)據(jù)庫、表,以及增刪改查表中的內(nèi)容了,到了這一步,我們可以進(jìn)行簡(jiǎn)單的封裝使得我們的sql語言更加的精致。
??? 2.1、創(chuàng)建數(shù)據(jù)庫
1 $con=mysqli_connect("127.0.0.1","root",""); 2 // Check connection 3 if (mysqli_connect_errno()) 4 { 5 echo "Failed to connect to MySQL: " . mysqli_connect_error(); 6 } 7 8 // Create database 9 $sql="CREATE DATABASE zyr_db"; 10 if (mysqli_query($con,$sql)) 11 { 12 echo "Database zyr_db created successfully"; 13 echo '<br>'; 14 mysqli_close($con); 15 } 16 else 17 { 18 echo "Error creating database: " . mysqli_error($con); 19 echo '<br>'; 20 }? 2.2、創(chuàng)建表
1 $con=mysqli_connect("127.0.0.1","root","","zyr_db"); 2 // Check connection 3 if (mysqli_connect_errno()) 4 { 5 echo "Failed to connect to MySQL: " . mysqli_connect_error(); 6 echo '<br>'; 7 } 8 9 // Create table 10 $sql="CREATE TABLE Persons(FirstName CHAR(30),LastName CHAR(30),Age INT)"; 11 12 // Execute query 13 if (mysqli_query($con,$sql)) 14 { 15 echo "Table persons created successfully"; 16 echo '<br>'; 17 } 18 else 19 { 20 echo "Error creating table: " . mysqli_error($con); 21 echo '<br>'; 22 }??? 2.3、插入數(shù)據(jù)
1 mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) VALUES ('zyr', 'lsx',24)"); 2 mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) VALUES ('xiaohong', 'xiaoming',30)"); 3 echo "after INSERT..."; 4 echo "<br>"; 5 findAllPeoples($con);??? 2.4、查找所有數(shù)據(jù)
1 function findAllPeoples($con){ 2 $result = mysqli_query($con,"SELECT * FROM Persons"); 3 4 while($row = mysqli_fetch_array($result)) 5 { 6 echo $row['FirstName'] . " " . $row['LastName'] ." ".$row['Age']; 7 echo "<br>"; 8 } 9 }??? 2.5、按條件查找數(shù)據(jù)
1 echo "find by firstname ..."; 2 echo "<br>"; 3 findPeopleById("zyr",$con);???? 其中findPeopleById("zyr",$con);為:
1 function findPeopleById($name,$con){ 2 $result = mysqli_query($con,"SELECT * FROM Persons WHERE FirstName = ". "'" .$name."'"); 3 4 while($row = mysqli_fetch_array($result)) 5 { 6 echo $row['FirstName'] . " " . $row['LastName'] ." ".$row['Age']; 7 echo "<br>"; 8 } 9 }????? 2.6、更新數(shù)據(jù)
1 mysqli_query($con,"UPDATE Persons SET Age=25 WHERE FirstName='zyr' AND LastName='lsx'"); 2 echo "after UPDATE..."; 3 echo "<br>"; 4 findAllPeoples($con);???? 2.7、刪除數(shù)據(jù)并且關(guān)閉數(shù)據(jù)庫
1 mysqli_query($con,"DELETE FROM Persons"); 2 echo "after delete..."; 3 echo "<br>"; 4 findAllPeoples($con); 5 mysqli_close($con);???? 2.8、刪除數(shù)據(jù)庫
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <?php 9 $con=mysqli_connect("127.0.0.1","root",""); 10 // Check connection 11 if (mysqli_connect_errno()) 12 { 13 echo "Failed to connect to MySQL: " . mysqli_connect_error(); 14 } 15 16 // Create database 17 $sql="drop DATABASE my_db"; 18 if (mysqli_query($con,$sql)) 19 { 20 echo "Database zyr_db dropped successfully"; 21 mysqli_close($con); 22 } 23 else 24 { 25 echo "Error creating database: " . mysqli_error($con); 26 } 27 ?> 28 </body> 29 </html>??? 以上就是數(shù)據(jù)庫相關(guān)的操作,使用函數(shù)進(jìn)行相應(yīng)的封裝即可。
?? 2.9、php和mysql的對(duì)應(yīng)api
當(dāng)考慮連接到MySQL數(shù)據(jù)庫服務(wù)器的時(shí)候,有三種主要的API可供選擇: PHP的MySQL擴(kuò)展PHP的mysqli擴(kuò)展PHP數(shù)據(jù)對(duì)象(PDO)PHP的MySQL擴(kuò)展:這是設(shè)計(jì)開發(fā)允許PHP應(yīng)用與MySQL數(shù)據(jù)庫交互的早期擴(kuò)展。mysql擴(kuò)展提供了一個(gè)面向過程的接口,并且是針對(duì)MySQL4.1.3或更早版本設(shè)計(jì)的。因此,這個(gè)擴(kuò)展雖然可以與MySQL4.1.3或更新的數(shù)據(jù)庫服務(wù)端進(jìn)行交互,但并不支持后期MySQL服務(wù)端提供的一些特性。PHP的mysqli擴(kuò)展:mysqli擴(kuò)展,稱之為MySQL增強(qiáng)擴(kuò)展,可以用于使用 MySQL4.1.3或更新版本中新的高級(jí)特性。mysqli擴(kuò)展在PHP 5及以后版本中包含。
mysqli擴(kuò)展有一系列的優(yōu)勢(shì),相對(duì)于mysql擴(kuò)展的提升主要有:面向?qū)ο蠼涌趐repared語句支持多語句執(zhí)行支持事務(wù)支持增強(qiáng)的調(diào)試能力嵌入式服務(wù)支持在提供了面向?qū)ο蠼涌诘耐瑫r(shí)也提供了一個(gè)面向過程的接口。PDO:PHP數(shù)據(jù)對(duì)象,是PHP應(yīng)用中的一個(gè)數(shù)據(jù)庫抽象層規(guī)范。PDO提供了一個(gè)統(tǒng)一的API接口可以使得你的PHP應(yīng)用不去關(guān)心具體要連接的數(shù)據(jù)庫服務(wù)器系統(tǒng)類型。
也就是說,如果使用PDO的API,可以在任何需要的時(shí)候無縫切換數(shù)據(jù)庫服務(wù)器,比如從Firebird 到MySQL,僅僅需要修改很少的PHP代碼。
其他數(shù)據(jù)庫抽象層的例子包括Java應(yīng)用中的JDBC以及Perl中的DBI。當(dāng)然,PDO也有它自己的先進(jìn)性,比如一個(gè)干凈的,簡(jiǎn)單的,可移植的API,
它最主要的缺點(diǎn)是會(huì)限制讓你不能使用后期MySQL服務(wù)端提供所有的數(shù)據(jù)庫高級(jí)特性。比如,PDO不允許使用MySQL支持的多語句執(zhí)行。
???? 最后我們思考一下,如何在wamp中的mysql之中批量執(zhí)行sql查詢語句呢,這里我們就需要用到mysql的命令行工具了,打開wamp服務(wù)器,找到服務(wù)器中mysql的按鈕,點(diǎn)擊之后,選擇打開命令行工具,密碼默認(rèn)為空,然后我們創(chuàng)建數(shù)據(jù)庫,并進(jìn)入數(shù)據(jù)庫之中,之后我們使用source命令來批量執(zhí)行相應(yīng)的sql語句。
?? 更多的關(guān)于PHP的mysql接口可以從PHP的官方文檔:http://php.net/manual/zh/set.mysqlinfo.php上面獲取。
三、PHP和ajax
??? 在PHP中使用ajax,我們可以非常方便的進(jìn)行相應(yīng)的查詢和相應(yīng),速度非常的快,這對(duì)于我們的動(dòng)態(tài)網(wǎng)頁來說是非常方便的。
? 3.1、數(shù)據(jù)查詢并顯示
?? 首先讓我們看一下客戶端代碼:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 function showHint(str) 8 { 9 if (str.length==0) 10 { 11 document.getElementById("txtHint").innerHTML=""; 12 return; 13 } 14 if (window.XMLHttpRequest) 15 {// code for IE7+, Firefox, Chrome, Opera, Safari 16 xmlhttp=new XMLHttpRequest(); 17 } 18 else 19 {// code for IE6, IE5 20 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 21 } 22 xmlhttp.onreadystatechange=function(){ 23 if (xmlhttp.readyState==4 && xmlhttp.status==200) 24 { 25 document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 26 } 27 } 28 xmlhttp.open("GET","gethint.php?q="+str,true); 29 xmlhttp.send(); 30 } 31 </script> 32 </head> 33 34 <body> 35 36 <p><b>在輸入框中輸入一個(gè)姓名:</b></p> 37 <form> 38 姓名: <input type="text" onkeyup="showHint(this.value)"> 39 </form> 40 <p>返回值: <span id="txtHint"></span></p> 41 42 </body> 43 44 </html>??? 然后是PHP服務(wù)器的代碼(gethint.php):
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <?php 9 // 將姓名填充到數(shù)組中 10 $a[]="Anna"; 11 $a[]="Brittany"; 12 $a[]="Cinderella"; 13 $a[]="Diana"; 14 $a[]="Eva"; 15 $a[]="Fiona"; 16 $a[]="Gunda"; 17 $a[]="Hege"; 18 $a[]="Inga"; 19 $a[]="Johanna"; 20 $a[]="Kitty"; 21 $a[]="Linda"; 22 $a[]="Nina"; 23 $a[]="Ophelia"; 24 $a[]="Petunia"; 25 $a[]="Amanda"; 26 $a[]="Raquel"; 27 $a[]="Cindy"; 28 $a[]="Doris"; 29 $a[]="Eve"; 30 $a[]="Evita"; 31 $a[]="Sunniva"; 32 $a[]="Tove"; 33 $a[]="Unni"; 34 $a[]="Violet"; 35 $a[]="Liza"; 36 $a[]="Elizabeth"; 37 $a[]="Ellen"; 38 $a[]="Wenche"; 39 $a[]="Vicky"; 40 41 //從請(qǐng)求URL地址中獲取 q 參數(shù) 42 $q=$_GET["q"]; 43 44 //查找是否由匹配值, 如果 q>0 45 if (strlen($q) > 0) 46 { 47 $hint=""; 48 for($i=0; $i<count($a); $i++) 49 { 50 if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))) 51 { 52 if ($hint=="") 53 { 54 $hint=$a[$i]; 55 } 56 else 57 { 58 $hint=$hint." , ".$a[$i]; 59 } 60 } 61 } 62 } 63 64 // 如果沒有匹配值設(shè)置輸出為 "no suggestion" 65 // or to the correct values 66 if ($hint == "") 67 { 68 $response="no suggestion"; 69 } 70 else 71 { 72 $response=$hint; 73 } 74 75 //輸出返回值 76 echo $response; 77 ?> 78 </body> 79 </html>?
? 3.2、網(wǎng)上投票
?? 客戶端文件:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 function getVote(int) 8 { 9 if (window.XMLHttpRequest) 10 {// code for IE7+, Firefox, Chrome, Opera, Safari 11 xmlhttp=new XMLHttpRequest(); 12 } 13 else 14 {// code for IE6, IE5 15 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 16 } 17 xmlhttp.onreadystatechange=function(){ 18 if (xmlhttp.readyState==4 && xmlhttp.status==200) 19 { 20 document.getElementById("poll").innerHTML=xmlhttp.responseText; 21 } 22 } 23 xmlhttp.open("GET","poll_vote.php?vote="+int,true); 24 xmlhttp.send(); 25 } 26 </script> 27 </head> 28 <body> 29 <div id="poll"> 30 <h3>Do you like PHP and AJAX so far?</h3> 31 <form> 32 Yes:<input type="radio" name="vote" value="0" οnclick="getVote(this.value)"> 33 <br>No: 34 <input type="radio" name="vote" value="1" οnclick="getVote(this.value)"> 35 </form> 36 </div> 37 </body> 38 39 </html>?? 服務(wù)器文件(poll_vote.php):
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <?php 9 $vote = $_REQUEST['vote']; 10 11 //get content of textfile 12 $filename = "poll_result.txt"; 13 $content = file($filename); 14 15 //put content in array 16 $array = explode("||", $content[0]); 17 $yes = $array[0]; 18 $no = $array[1]; 19 20 if ($vote == 0) 21 { 22 $yes = $yes + 1; 23 } 24 if ($vote == 1) 25 { 26 $no = $no + 1; 27 } 28 29 //insert votes to txt file 30 $insertvote = $yes."||".$no; 31 $fp = fopen($filename,"w"); 32 fputs($fp,$insertvote); 33 fclose($fp); 34 ?> 35 36 <h2>Result:</h2> 37 <table> 38 <tr> 39 <td>Yes:</td> 40 <td> 41 <img src="poll.gif" width='<?php echo(100*round($yes/($no+$yes),2)); ?>' height='20'> 42 <?php echo(100*round($yes/($no+$yes),2)); ?>% 43 </td> 44 </tr> 45 <tr> 46 <td>No:</td> 47 <td> 48 <img src="poll.gif" width='<?php echo(100*round($no/($no+$yes),2)); ?>' height='20'> 49 <?php echo(100*round($no/($no+$yes),2)); ?>% 50 </td> 51 </tr> 52 </table> 53 </body> 54 </html>?? 文件目錄:
四、php+ajax+jQuery
? 前端:
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>評(píng)論動(dòng)態(tài)加載</title> 6 <style type="text/css"> 7 .comment{ 8 background: #FFF; 9 #border-bottom: red solid; 10 width: 600px; 11 height: 80px; 12 } 13 .comment div img{ 14 width: 80px; 15 height: 80px; 16 } 17 .left{ 18 float: left; 19 width: 80px; 20 height: 80px; 21 background: blue; 22 } 23 .right{ 24 float: right; 25 width: 520px; 26 height: 80px; 27 } 28 #container{ 29 position: relative; 30 left: 50%; 31 width: 600px; 32 margin-left: -300px; 33 } 34 #container ul{ 35 padding-left: 0px; 36 list-style: none; 37 } 38 #more{ 39 background: lightGray; 40 height: 30px; 41 line-height: 30px; 42 text-align: center; 43 cursor: pointer; 44 } 45 #clear{ 46 background: red; 47 height: 30px; 48 line-height: 30px; 49 text-align: center; 50 cursor: pointer; 51 } 52 </style> 53 <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> 54 </head> 55 <body> 56 <div style="height:300px;"></div> 57 <div id="container"> 58 <ul id="contentList"> 59 <li class="comment"> 60 <div class="left"><img src="./g1.jpg"></div> 61 <div class="right"> 62 <div>一篇工作總結(jié)</div> 63 <div>我是內(nèi)容</div> 64 </div> 65 </li> 66 <hr> 67 <li class="comment"> 68 <div class="left"><img src="./g.jpg"></div> 69 <div class="right"> 70 <div>一篇工作總結(jié)</div> 71 <div>我是內(nèi)容2</div> 72 </div> 73 </li> 74 <hr> 75 76 </ul> 77 <div id="more">加載更多...</div> 78 <div id="clear">清零</div> 79 <input type="hidden" id="last" value="0"> 80 </div> 81 82 <script type="text/javascript"> 83 $(function(){ 84 $('#more').click(function(){ 85 var last = $('#last').val(); 86 var url = './data.php?last='+last+'&amount=2'; 87 queryComment(url); 88 }); 89 $('#clear').click(function(){ 90 $('#last').val(0); 91 }); 92 }); 93 94 function queryComment(url){ 95 $.ajax({ 96 type : "get", 97 async: true, 98 url : url, 99 dataType : "json", 100 success : function(data){ 101 if(data == 1){ 102 $('#more').html('沒有更多評(píng)論!').unbind('click'); 103 return false; 104 } 105 $.each(data,function(i,element){ 106 var nickname = element.nickname; 107 var content = element.content; 108 var time = element.time; 109 var imgpath = element.imgpath; 110 var info = $('<li class="comment"><div class="left"><img src="'+imgpath+'"></div><div class="right"><div>'+nickname+'</div><div></div>'+content+'</div></li><hr>'); 111 $('#contentList').append(info); 112 }); 113 var now = parseInt($('#last').val()) + 2; 114 $('#last').val(now); 115 }, 116 error:function(){ 117 console.log('fail'); 118 } 119 }); 120 } 121 </script> 122 </body> 123 </html>??? 后端:
1 <?php 2 3 $con=mysqli_connect("127.0.0.1","root","","mydb"); 4 $last = $_GET['last']; 5 $amount = $_GET['amount']; 6 7 $query=mysqli_query($con,"select * from comment order by id desc limit $last,$amount"); 8 $flag = false; 9 while ($row=mysqli_fetch_array($query)) { 10 $flag = true; 11 $sayList[] = array( 12 'id'=>$row['id'], 13 'nickname'=>$row['nickname'], 14 'content'=>$row['content'], 15 'imgpath'=>$row['imgpath'], 16 'time'=>$row['time'] 17 ); 18 } 19 if($flag){ 20 echo json_encode($sayList); 21 }else{ 22 echo true; 23 } 24 25 ?>? sql語句:
DROP TABLE IF EXISTS `comment`; CREATE TABLE `comment` (`id` int(11) NOT NULL ,`nickname` varchar(30) DEFAULT NULL,`content` varchar(30) DEFAULT NULL,`imgpath` varchar(30) DEFAULT NULL,`time` datetime DEFAULT NULL,PRIMARY KEY (`id`) ) ;-- ---------------------------- -- Records of comment -- ---------------------------- INSERT INTO `comment` VALUES ('1', '1', '23', './g1.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('2', '2', '333', './g2.jpg', '2015-12-22 18:00:21'); INSERT INTO `comment` VALUES ('3', 'zhangsan', 'ceshi3', './g3.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('4', 'zhangsan', 'ceshi4', './g4.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('5', 'zhangsan', 'ceshi5', './g5.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('6', 'zhangsan', 'ceshi6', './g0.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('7', 'zhangsan', 'ceshi7', './g2.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('8', 'zhangsan', 'ceshi8', './g5.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('9', 'zhangsan', 'ceshi9', './g.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('10', 'zhangsan', 'ceshi10', './g2.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('11', 'zhangsan', 'ceshi11', './g3.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('12', 'zhangsan', 'ceshi12', './g4.jpg', '2015-12-21 17:59:54'); INSERT INTO `comment` VALUES ('13', 'zhangsan', 'ceshi13', './g5.jpg', '2015-12-21 17:59:54'); View Code?? 運(yùn)行結(jié)果:
五、總結(jié)
???? 我們首先學(xué)習(xí)了在PHP中如何使用mysql數(shù)據(jù)庫,其次我們學(xué)習(xí)了PHP中使用ajax的相關(guān)技巧,通過上面代碼和文檔的學(xué)習(xí),我們已經(jīng)有了正式使用PHP的能力了,當(dāng)然PHP中還有很多其他的功能,在這里我們就不一一列舉了。
轉(zhuǎn)載于:https://www.cnblogs.com/zyrblog/p/9670173.html
總結(jié)
以上是生活随笔為你收集整理的沉淀再出发:PHP的中级内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用jaxb根据xsd逆向生成java代
- 下一篇: Win10安装 oracle11g 出现