讓我們來了解一下 PHP 和 HTML 是如何一起愉快的玩耍的。
小實踐
在工作目錄下新建一個 index.php 文件,內容如下:
// ~/project/index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
</html>
這是一個簡單的 HTML 編碼模版。
接下來我們添加一些新的頁面元素和樣式,讓 HTML 內容更豐富一點。
// ~/project/index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
header {
background: #e3e3e3;
padding: 2em;
text-align: center;
}
</style>
</head>
<body>
<header>
<h1>Hello, World!</h1>
</header>
</body>
</html>
接下來引入 PHP 代碼。將 header 標簽下的內容替換如下:
<header>
<h1>
<?php echo "Hello, " . $_GET['name']; ?>
</h1>
</header>
打開終端運行:php -S localhost:8000。
打開瀏覽器地址欄訪問:http://localhost:8000?name=Jacob
即可見到當前網頁的運行效果。
你可以能已經發(fā)現(xiàn),上面代碼中的 $_GET['name'] 就是從地址欄中的參數(shù) name 中獲取內容,然后通過輸出代碼將其顯示在了網頁上。這里 name 是參數(shù)名稱,你可以換成其它的參數(shù)名。
需要提到的是,將用戶輸入的內容(這里是通過 $_GET 參數(shù)獲取的內容)直接輸出到頁面上不是好習慣,可能會產生安全風險(可以了解 XSS 相關信息)。
比如當?shù)刂窓谳斎耄?/p>
http://localhost:8000/?name=%3Ca%20href=%22http://google.com%22%3EGoogle%3C/a%3E
內容會顯示成為 HTML 鏈接而不是相應的文字。
通常的做法是進行轉義,就像這樣:
<?php echo "Hello, " . htmlspecialchars($_GET['name']); ?>
這樣,頁面就會輸出獲取的原始內容,而不會被瀏覽器當作代碼執(zhí)行。
額外補充一下
通常 PHP 與 HTML 混合時,嵌入的 PHP 代碼都以 <?php 開始 ,以 ?> 結束,如下:
<?php echo "Hello, " . $_GET['name']; ?>
如果你的文件單純的編寫 PHP 的代碼,可以不用結束標簽,代碼末尾可以省略 ?>,有和有沒有都可以。如下:
// ~/path/your-php-file.php
<?php
// 編寫你的 PHP 代碼 ......
?>