1、location.href='http://www.xxx.com/'; 2、location.replace('http://www.xxx.com/'); phpstudy運用在後端 ------伺服器:提供服務的機器------ 通過功能變數名稱訪問 給電腦配伺服器 靜態頁面就是數據不變 數據變化... ...
1、location.href='http://www.xxx.com/'; 2、location.replace('http://www.xxx.com/'); phpstudy運用在後端 ------伺服器:提供服務的機器------ 通過功能變數名稱訪問 給電腦配伺服器 靜態頁面就是數據不變 數據變化:動態網頁 伺服器作了什麼: 1.接受用戶請求 2.根據用戶請求執行相應業務處理 3.將處理返回 ajax: 發送請求 響應結果 http:服務端的通訊協議 https: 更安全 bs 瀏覽器伺服器 cs 客戶端伺服器 埠 3306 資料庫 80 wed服務 DNS: 1.接收用戶輸入的功能變數名稱 2.查詢功能變數名稱所對應的ip地址 3.返回ip DNS 翻譯 hosts文件 相當於DNS C:\Windows\System32\drivers\etc PHP是什麼? 超文本預處理 埠: 電腦本身是一個封閉的環境,就像是一個大樓,如果需要有數據通信往來,必須有門,這個門在術語中就叫埠,每一個埠都有一個編號,每台電腦只有 65536 個埠(0-65535) <?php // echo 是 PHP 中的一個特殊的“指令”, // 不一定需要像函數那樣通過 `()` 去使用 // 註意:echo 後面緊跟著一個空格 echo 'hello php'; echo 'hello', 'world'; // => `helloworld` <?php // print 與 echo 唯一區別就是只能有一個參數 print 'hello php'; // print 'hello', 'world'; // => Parse error: syntax error ... <?php // var_dump 是一個函數,必須跟上 () 調用 // 可以將數據以及數據的類型列印為特定格式 var_dump('hello php'); // => 'string(9) "hello php" 數據類型: - string(字元串) ** - integer(整型)—— 只能存整數 - float(浮點型)—— 可以存帶小數位的數字 - boolean(布爾型) - array(數組) ** - object(對象) - NULL(空) 判斷數據類型: - is_string():判斷當前變數是否是字元串類型 - is_bool():判斷當前變數是否是布爾類型 - is_int():判斷當前變數是否是整形類型 - is_float():判斷當前變數是否是浮點類型 - is_array():判斷當前變數是否是數組類型 - is_object():判斷當前變數是否是對象類型 pre 格式化 後裡面寫空格就有空格 $globals 改變全局變數作用域 - $GLOBALS — 引用全局作用域中可用的全部變數 - $_SERVER — 獲取服務端相關信息 - $_REQUEST — 獲取提交參數 - $_POST — 獲取 POST 提交參數 - $_GET — 獲取 GET 提交參數 - $_FILES — 獲取上傳文件 - $_ENV — 操作環境變數 - $_COOKIE — 操作 Cookie - $_SESSION — 操作 Session ;開啟擴展路徑ext,ext是PHP程式的插件目錄,修改成絕對路徑 extension_dir = "G:/phpstudy/php/php-7.1.14/ext" // +只能是算術運算符,系統會自動的將+兩邊的變數轉換為數組, //如果可以轉換,就進行轉換,否則返回這個數據類型的預設值 //int >0 object > null bool>false float:0.0 // 在php中字元串連接符使用. // 算術運算符: + - * 、 % ++ -- // 賦值運算符:= += -= *= /= // 邏輯運算符:! && || // 比較運算符:> >= < <= == === != // 三元運算符:a>b ? "" : "" get:一般用來獲取數據,參數會在url地址欄拼接 post:一般用來發送數據到伺服器 ----------accept=".jpg,.png"文件類型----------------------- <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" enctype="multipart/form-data"> 文件上傳: <input type="file" name="myfile" id="" accept=".jpg,.png"> <input type="submit"> </form> ---------------------------------------------------------- trim()去除前後的空格 --------------------------上傳-------------------------------------- <!-- 1.在php中,上傳文件的請求方式必須是post --> <!-- 2.在上傳的時候必須在表單設置enctype屬性 application/x-www-form-urlencoded:將參數編碼為鍵值對的格式,這是標準的編碼格式(UTF-8 GBK GB2312),它用來處理字元串,它是預設的編碼格式 multipart/form-data:它是專門用來處理特殊數據的,如文件 --> --------------------------------------------------------------------- Array ( [myfile] => Array ( [name] => 跨域攻擊.png:源文件的名稱 [type] => image/png:源文件的類型 [tmp_name] => C:\Windows\phpE412.tmp:這是文件在伺服器的臨時路徑 [error] => 0:錯誤信息,0代表沒有錯誤 [size] => 256436:文件的大小 ) ) */ //(1)strpos(源字元串,搜索字元串):可以獲取指定字元串在源字元串中第一次出現的索引值,索引從0開始 //(2)strrchr(源字元串,指定搜索的字元) - <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data"> 文件選擇:<input type="file" name="myfile"><br> <input type="submit"> </form> GET方式提交數據的特點: get方式在url後面拼接參數,只能以文本的形式傳遞數據 傳遞的數據量小,4KB左右(不同瀏覽器會有差異) 安全性低,會將數據顯示在地址欄 速度快,通常用於對安全性要求不高的請求 特點 1-post 方式 安全性比較高 2-傳遞數據量大,請求對數據長度沒有要求 3-請求不會被緩存,也不會保留在瀏覽器歷史記錄中 用於:密碼等安全性要求比較高的場合,提交的數據量比較大:發佈文章,上傳文件。 POST方式提交數據上限預設為8M(可以在PHP的配置文件post_max_size選項中修改) <!-- $_SERVER["PHP_SELF"] 表示當前處理頁面的名字--> implode:字元串分割 //使用move_uploaded_file函數來實現文件的移動,否則文件在程式結束後會被自動的刪除 //move_uploaded_file(源文件的全路徑,目標文件的全路徑) 出現亂碼解決代碼:header('content-type:text/html;charset=utf8'); <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 表單提交請求 } 超全局變數:無法訪問函數中的變數; $GLOBALS 時間區 php-ini >date.timezone = PRC|Asia/shanghai|Asia/chongqin ------------------------------------------------------------------- 1.php標記 <?php 1.寫在這個結構內的代碼才會以php語法解析 2.寫在這個結構外的代碼會原樣返回 ?> 2.輸出內容的方式 echo:輸出一個或者多個字元串 print 或者 print():輸出一個字元串值 print_r():可以輸出複雜數據類型,如數組,以鍵值對的形式輸出 var_dump():可以輸出複雜數據類型,如數組,以鍵值對的形式輸出,還可以輸出數據的長度 3.字元串 '':不能解析變數,會將變數當成普通字元串處理 \\ \' "":能解析變數 \" \t \n \r \$ 4.數組: 創建方式: $arr = array() $arr = [] $arr[] = value; //如果數組不存在則可以自動的創建一個數組,並將當前值添加到數組中,如果存在則添加數據到數組 數組的類型: 索引數組:不人為設置key $arr = array(1,2,3,4); 關聯數組:人為設置key和value $arr = array("name"=>"jack") 混合數組:$arr= array(1,2,3,"name"=>"jack",4) 二維數組:數據的值本身又是一個數組 $arr = array( array( "name"=>"jack", "age"=>20 ), array() ); 數組遍歷:for | foreach for($i =0;$i<count(數組);$i++){ } foreach(需要遍歷的數組對象 as $key => $value){ } foreach(需要遍歷的數組對象 as $value){ } 5.變數作用域:函數內部預設不能使用函數外部所聲明的成員,如果想使用,則: 1.使用global關鍵字 2.使用超全局變數$GLOBALS 6.常量的定義和使用: define(名稱,值,false) 全大寫 7.載入其它文件:文件包含 include:如果載入失敗,不會報錯,後續代碼會繼續執行,它可以重覆載入 include_once:如果載入失敗,不會報錯,後續代碼會繼續執行,它不會重覆載入,只會真正的載入一次 require:如果載入失敗,會報錯,後續代碼不會繼續執行,它可以重覆載入 require_once:如果載入失敗,會報錯,後續代碼不會繼續執行,它不可以重覆載入 8.常用API 文件操作: file_get_contents:可以讀取文件內容並返回 file_put_contents(文件路徑,寫入的內容,FILE_APPEND):可以將指定的字元串內容寫入到文件,其中第三個參數FILE_APPEND可以實現文件內容的追加 9.html混編 1.在<?php 在這個結構內部只能寫符合php語法的代碼 ?> 2.在<?php ?>結構的代碼會原樣輸出 3.混編實現方式 1.<?php echo '<p></p>' ?> 2. <?php if(){ ?> <p></p> <php }?> ---------------------------------------------------------- php.ini 上傳音樂 upload_max_filesize = 500M 更改 <audio>標簽,作用:播放音樂 src:添加音頻文件路徑 controls 出現控制播放的控制面板, autoplay 自動播放 請求行 請求頭 空行 請求體 記住:使用session一定要加上session_start() //一小時過期 setcookie("uName","admin",time()+ 3600) //永久性COOKIE setcookie("password","123",PHP_INT_MAX); //setcookie("username","jack",PHP_INT_MAX,"/day5/down"); -----------增加刪除和修改是返回受影響的行數-------------- 查詢語句的語法:select *|欄位列表 from 表列表 where 條件 *代表當前表的所有欄位 資料庫操作: select from 表名 where 條件 ----查詢 insert into 表名 values 條件 ----新增 update 表名 set 條件 ----修改 delete from 表名 where 條件 ----刪除 -- 查詢mytalbe中的所有數據 SELECT * FROM mydase -- 查詢mytalbe中的所有數據 SELECT * FROM mydase -- 查詢ID not>! and>&& or>|| SELECT id,NAME FROM mydase SELECT * FROM mydase where id =4 SELECT * FROM mydase where age<20 SELECT * from mydase where age>=20 AND gender =1 -- 增加 insert into mydase values (null,'lili',13,2010-12-1,0,17615848307) INSERT INTO mydase(age,gender) VALUE (40,1) -- 修改語句 UPDATE mydase SET age = age +10 WHERE id = 2 update mydase set age = age +20 where id = 5 -- 刪除語句 delete from mydase where id = 6 delete from mydase where id in (4,5) select count ---數數總計 select min ---最小值 select max ---最大值 select avg ---平均值 判斷用戶是否提交 if($_SERVER["REQUEST_METHOD"]==="POST"){ login(); } 步驟分析: 1、判斷請求是否是POST $_SERVER[‘REQUEST_METHOD’]==’POST’ 2、校驗表單數據是否為空或者不存,如果不存在就將該表單的name存入數組中 3、點擊提交判斷沒有輸入值就顯示警告 步驟分析: list.php 1、讀取文件獲取json字元串 2、將json字元串轉換成php數組 3、遍曆數組將數據渲染到頁面上 步驟分析: 1、將選中的文件存儲為永久文件 2、讀取music.json中的數據 (1)將數據轉換成數據數組 json.decode (2)獲取表單輸入的值存放至數據數組中 3、將數據數組轉換成字元串 json.encode 寫入music.json中 4、添加成功後頁面跳轉至list.php 鏈接庫: header('content-type:text/html;charset=utf-8'); mysqli_set_charset($conn,"utf8"); // 連接成功,那麼就可以創建sql語句,執行相關操作 // 1.新增數據:在執行新增語句的時候,mysqli_query的返回值:如果成功則返回true,否則返回false // 2.修改操作: // 3.刪除操作 1.創建連接--建立連接 $conn = mysqli_connect(主機或IP地址,用戶名,密碼,資料庫名稱); 如果連接成功,就返回一個連接對象(資源),如果連接失敗,返回false 2.設置編碼:主要是解決瀏覽器出現亂碼的問題 1.伺服器端的編碼和php的編碼不一致:mysqli_set_charset($conn,"utf8") | mysqli_query($conn,"set names utf-8") 2.php的編碼和瀏覽器端的編碼不一致:header("Content-Type:text/html;charset=utf-8") 3.創建sql語句 1.新增:數值如果是字元串類型,一定要使用引號包含.如果數據沒有使用引號包含,有可能會有錯 "insert into temp value('張三')" 2.刪除和修改一定需要考慮是否有條件 4.執行sql語句 1.增加刪除和修改:如果成功則返回true,否則返回false 2.查詢: 查詢失敗:false 查詢成功但是沒有數據行:mysqli_num_rows(資源對象--引用) 查詢成功也有數據行:讀取數據 3.使用mysqli_query($conn,$sql) 5.接收返回值 增加刪除和修改:true/false 查詢有結果集同時有數據 mysqli_fetch_array(查詢結果集):每次讀取一行數據,生成數組,裡面包含兩種形式的數據(索引數組,關聯數組) mysqli_fetch_assoc:每次讀取一行數據,生成數組,裡面只包含關聯數組 mysqli_fetch_row:每次讀取一行數據,生成數組,裡面只包含索引數組 迴圈讀取: while($row = mysqli_fetch_assoc(結果集)){ $arr[] = $row; } 6. 釋放資源:及時的關閉連接對象,釋放資源:什麼時候釋放:當與mysql相關的操作執行完畢之後就立刻釋放 mysqli_close($conn); <?php header("Content-Type:text/html;charset=utf-8"); $coon = mysqli_connect("localhost","root","root","mydase"); mysqli_set_charset($coon,"utf8"); if(!$coon){ //echo '連接失敗'; die("連接失敗"); }else{ echo "連接成功"; } ?> 獲取電腦相隔現在時間 $time1=strtotime(); 現在時間 $time2 = time(); //合併單元格 //colspan 橫向合併 跨列 //rowspan 縱向合併 跨行 200 OK 請求已成功,請求所希望的響應頭或數據體將隨此響應返回。出現此狀態碼是表示正常狀態。 403 請求被拒絕 404 伺服器沒有這個頁面 extension_dir 開啟 配置文件 mysqli 開啟 配置文件 ========================================================== //連接庫 $conn=mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME); //設置sql語句 $sql="SELECT p.id,p.title,p.feature,p.created,p.content,p.views,p.likes,c.`name`,u.`nickname`, (SELECT COUNT(id) FROM comments WHERE comments.post_id=p.`id`) AS commentCount FROM posts p LEFT JOIN categories c ON c.`id`=p.`category_id` LEFT JOIN users u ON u.`id`=p.`user_id` WHERE p.`category_id`={$categoryId} LIMIT 20"; //執行sql語句 $result=mysqli_query($conn,$sql);//結果集 header("Content-Type:text/html;charset=utf-8"); //拿到數據 $postarr=[]; while($row=mysqli_fetch_assoc($result)){ $postarr[]=$row; } header("Content-Type:application/json;charset=utf-8"); echo json_encode($response);從資料庫獲取內容並轉換成JSON格式的內容