php如何做局域網(wǎng)的網(wǎng)站今日頭條指數(shù)查詢
單詞:construct 構(gòu)造????????destruct 摧毀????????empty? 空的????????trim 修剪????????strip 清除? ? ? ? slash 斜線? ? ? ? special 特殊? ? ? ? char 字符? ? ? ? ?query 詢問
構(gòu)造方法(魔術(shù)方法)
構(gòu)造方法是一種特殊的函數(shù),用于在創(chuàng)建對(duì)象時(shí)初始化對(duì)象屬性。在 PHP 中,構(gòu)造方法通過?__construct()
?實(shí)現(xiàn)。以下是一個(gè)示例:
class Person{var $name;var $age;var $sex;function __construct($name='老王',$age=18,$sex='女'){$this->name =$name;$this->age =$age;$this->sex =$sex;}
}$ren = new Person("張三",18,"男");
超級(jí)全局變量
超級(jí)全局變量用于接收前端表單傳遞的數(shù)據(jù)。例如,使用?$_GET
、$_POST
?和?$_REQUEST
?接收 GET 和 POST 請(qǐng)求的參數(shù)。
前端表單示例:
<form action="super_var.php" method="get"><input type="text" name="uname" placeholder="請(qǐng)輸入用戶名"><br><input type="password" name="pwd" placeholder="請(qǐng)輸入密碼"><br><input type="submit" value="登錄">
</form>
后端接收數(shù)據(jù)示例:
/isset判斷是否存在key為‘uname’和‘pwd’的值
if(isset($_POST['uname'])&&isset($_POST['pwd'])){$name = $_POST['uname'];$pwd = $_POST['pwd'];//empty判斷值是否為NULL,為NULL返回值為1if(empty($name)||empty($pwd)){echo "<script>alert('用戶名或密碼不能為空');history.back();</script>";exit;}//只能包含字母和數(shù)字長(zhǎng)度大于6小于12的正則表達(dá)式,preg_match匹配正則$reg = "/^[a-zA-Z0-9]{6,12}+$/";if(!preg_match($reg,$name)){echo "<script>alert('用戶名或密碼只能包含字母和數(shù)字');history.back();</script>";exit;}echo "<script>alert('登錄成功!')</script>";
}
數(shù)據(jù)清洗
數(shù)據(jù)清洗是處理用戶輸入的重要步驟。以下是一些常用的數(shù)據(jù)清洗函數(shù):
trim()
:去除字符串首尾的空格。stripslashes()
:去除字符串中的反斜杠。htmlspecialchars()
:將特殊字符轉(zhuǎn)換為 HTML 實(shí)體。
$str = ' NTD 2404 ';
echo '|'.trim($str).'|'; // 輸出:|NTD 2404|$str = '\n\N\T\D 2404';
echo stripslashes($str); // 輸出:nNTD 2404$str = "<script>alert('hello');</script>";
echo htmlspecialchars($str); // 輸出:安全的 HTML 代碼
Cookie 和 Session
Cookie 和 Session 用于保存會(huì)話狀態(tài)。
Cookie
Cookie 用于在不同頁(yè)面間保存用戶信息。設(shè)置 Cookie:
setcookie('cookie_name','cookie_key',time()+x);
獲取 Cookie:
$_COOKIE['cookie_name']
刪除 Cookie:
setcookie('cookie_name','',time()-x);
Session
Session 將用戶信息存儲(chǔ)在服務(wù)器上。使用 Session:
session_start();//開啟session
$_SESSION['uname'] =$name;//傳遞參數(shù)
$_SESSION['pwd'] =$pwd;
關(guān)閉 Session:
unset($_SESSION['uname']);
unset($_SESSION['pwd']);//清空文件中的內(nèi)容
session_destroy();//銷毀session
Session 文件通常存儲(chǔ)在?PHPstuby/tmp/tmp
?目錄下
文件名:sess_8bglllpijuhagji8earq3uo1j1(下劃線前為固定值,后綴為sessionID)
PHP與SQL聯(lián)動(dòng)
PHP 連接 MySQL | 菜鳥教程 (runoob.com)
//鏈接數(shù)據(jù)庫(kù)
$conn = new mysqli('127.0.0.1','root','root');
if($conn->connect_error){//判斷是否鏈接成功die("連接失敗".$conn->connect_error);
}//使用數(shù)據(jù)庫(kù)
$conn -> query('use user');//增
$sql = 'insert into persion(name,age) values("王同學(xué)",20)';
$conn -> query($sql);//執(zhí)行成功返回一個(gè)boolean值ture//改
$sql = 'update persion set age=30 where name="王同學(xué)"';
$conn -> query($sql);//刪
$sql = "delete from persion where age<=20";
$conn -> query($sql);//查 fetch_assoc獲取結(jié)果一次一行
$sql = "select * from persion";
$res = $conn -> query($sql);
while($row = $res->fetch_assoc()){echo "姓名:".$row['name']."年齡:".$row['age']."<br>";
}
查數(shù)據(jù)時(shí):$res為查詢結(jié)果集
object(mysqli_result)#2 (5)??{ ["current_field"]=> int(0) ["field_count"]=> int(3) ["lengths"]=> NULL ["num_rows"]=> int(5) ["type"]=> int(0) }
current_field
:當(dāng)前字段的索引。field_count
:結(jié)果集中的字段數(shù)量。lengths
:一個(gè)數(shù)組,包含了結(jié)果集中每個(gè)字段的數(shù)據(jù)長(zhǎng)度。num_rows
:結(jié)果集中的行數(shù)。type
:結(jié)果集的類型。
sql預(yù)處理
$sql = "insert into persion(name,age) values (?, ?)";
//生成預(yù)處理對(duì)象
$stmt = $conn->prepare($sql);
$stmt ->bind_param("si", $name, $age);
$name = "張三";
$age = 18;
$stmt->execute();
$stmt->close();