<?php
echo "Hello World!";
請存到網頁目錄,如:D:\xampp\htdocs\index.php
PHP程式的副檔名一律為.php
PHP程式碼必須放在<?php和?>的起始標記和結束標記符號中。
若是該檔案中只有純粹的PHP語法,並沒有其他的HTML語法,那麼,就不建議加上「?>」符號。
<?php
$title = "待辦清單";
$header = "我的待辦事項清單";
?>
<!DOCTYPE html>
<html lang="zh-Hant-TW">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/node_modules/bootstrap/dist/css/bootstrap.min.css" />
<script src="/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="/node_modules/@fortawesome/fontawesome-free/css/all.min.css" />
<title><?php echo $title; ?></title>
</head>
<body>
<div class="container">
<img src="images/logo.jpg" class="rounded-circle mx-auto d-block" width="100%" height="200rem" alt="logo">
<nav class="navbar navbar-expand-sm navbar-dark bg-primary">
<a class="navbar-brand" href="#">
<h1><?php echo $header; ?></h1>
</a>
//以下省略
echo是PHP用來輸出資料的語言結構(不是函數),常用。
在PHP中,凡是資料類型是字串的都必須用引號包起來,用雙引號或單引號都可以。
每一個PHP語句後要加上「;」結尾。
開啟瀏覽器,在網址列輸入「http://localhost/index.php」或「http://127.0.0.1/index.php」。
<?php
echo "註解可以直接寫在後面<br>"; // 這是c++風格的單行註解
// 這是c++風格的單行註解
echo "當然註解寫在上面也行<br>";
echo "這是另一種單行註解"; #這是Unix Shell風格的單行註解
在 VS Code 請按 Ctrl + / 即可。
<?php
/* 這是多行註解只要前後有兩
個多行註解的符號包起來即可 */
/*
這也是多行註解只要前後有兩
個多行註解的符號包起來即可
*/
在 VS Code 請按 Shift + Alt + A 即可。
<?php
phpinfo();
設定項目 | 建議值 |
---|---|
date.timezone主機預設時區,若主機在台灣,請務必設置為「Asia/Taipei」,否則系統抓到的可能會有誤差。 |
Asia/Taipei |
display_errors是否顯示錯誤訊息?建議開啟!!否則網站變成空白時將很難進行除錯。 |
On |
file_uploads是否允許檔案上傳。需配合 upload_max_filesize, upload_tmp_dir, post_max_size 等設定。一般而言,上傳上限的設定,大小需求如下:memory_limit > post_max_size > upload_max_filesize |
On |
max_execution_time每個程序最大允許執行時間(秒),0 表示沒有限制。這個參數有助於阻止劣質程序無休止的佔用伺服器資源。 |
150 |
max_file_uploads最多只能傳幾個檔案?請視需求設定之。 |
300 |
max_input_time每個程序解析輸入資料的最大允許時間(秒)。 |
120 |
max_input_vars可接收的變數數量,超過此數量,就無法完全接收表單內容。 |
5000 |
memory_limit一個程序所能夠申請到的記憶體空間 (可以使用 K 和 M 作為單位)。 這有助於防止劣質程序消耗完伺服器上的所有記憶體。如果要取消記憶體限制,則必須將其設為 -1 。 |
240M |
post_max_size允許送出的 POST 表單大小。 該值必須大於 upload_max_filesize 的值。 |
220M |
upload_max_filesize允許上傳的檔案的最大尺寸。 |
200M |
display_errors
$userNames=array('李佳玲','吳弘凱');
// 一維陣列
$navbar = ['home' => "回首頁", 'post' => "發布待辦事項"];
// $navbar['home'] = "回首頁";
// $navbar['post'] = "發布待辦事項";
// 二維陣列
$content = array(
"1" => array('directions' => "撰寫程式", 'end' => "2021/03/20"), //用逗號結尾
"2" => array('directions' => "開會", 'end' => "2021/03/22"),
);
// $content[1]['directions'] = "撰寫程式";
// $content[1]['end'] = "2021/03/20";
// $content[2]['directions'] = "開會";
// $content[2]['end'] = "2021/03/22";
// print_r($content);
Notice 訊息不會影響網站運行,只是語法不完整或不夠嚴謹,PHP給您的溫馨提示而已。
Warning訊息是警告訊息,通常會造成部份語法無法運行,但整體網站仍可呈現。
Parse error 是解析錯誤訊息,通常是語法不正確,例如少了敘述句結尾分號之類的,網站會整個停擺。
Fatal error 嚴重錯誤,網站會整個停擺
Fatal error: Uncaught --> Smarty: Unable to load template 'file:index.tpl' Smarty無法載入樣板PHP內心OS:說好的樣板檔呢?在templates下找不到啦!
composer require smarty/smarty
mkdir templates
mkdir templates_c
mkdir configs
mkdir cache
index.php
內容
<?php
require_once 'vendor/autoload.php';
$smarty = new Smarty;
$page_title= '待辦清單';
$header = '我的待辦清單';
$smarty->assign('page_title', $page_title);
$smarty->assign('header', $header);
$smarty->display('index.tpl');
index.php
內的所有 html
語法剪下,另存到 templates/index.tpl
。
<head>
<title>{$page_title}</title>
</head>
<body>
~~~~~~~~~~~~~~~~~~~~~~~~~~以下省略~~~~~~~~~~~~~~~~~~~~
<a class="navbar-brand" href="#">
<h1>{$header}</h1>
</a>
<?php
// 引入樣板引擎檔
require_once 'vendor/autoload.php';
// 建立Smarty物件
$smarty = new Smarty;
// 設定要傳到樣板的變數
$page_title = '待辦清單';
$header = '我的待辦清單';
// 將變數送到Smarty樣板檔
$smarty->assign('page_title', $page_title);
$smarty->assign('header', $header);
// 呈現在哪個檔案 templates/xxx.tpl
$smarty->display('index.tpl');
傳送內容 | PHP檔(*.php) | Smarty樣板檔(*.tpl) |
---|---|---|
一般變數 |
|
|
一維陣列 |
|
|
二維陣列 |
|
或
|
require_once()
或 include_once()
引入。header.php
頁首檔
<?php
// 引入樣板引擎檔
require_once 'vendor/autoload.php';
// 建立Smarty物件
$smarty = new Smarty;
// 設定要傳到樣板的變數
$page_title = '待辦清單';
$header = '我的待辦清單';
// 一維陣列
$navbar = ['home' => "回首頁", 'post' => "發布待辦事項"];
$smarty->assign('navbar', $navbar);
footer.php
頁尾檔
<?php
// 將變數送到Smarty樣板檔
$smarty->assign('page_title', $page_title);
$smarty->assign('header', $header);
$smarty->assign('content', $content);
// 呈現在哪個檔案 templates/xxx.tpl
$smarty->display('index.tpl');
index.php
<?php
// 引入頁首 header.php
require_once 'header.php';
// 二維陣列
$content = array(
"1" => array('directions' => "撰寫程式", 'end' => "2021/03/20"), //用逗號結尾
"2" => array('directions' => "開會", 'end' => "2021/03/21"),
);
// 引入頁尾
require_once 'footer.php';
{include file="header.tpl"}
引入。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{$page_title}</title>
<link rel="stylesheet" href="\node_modules\bootstrap\dist\css\bootstrap.min.css">
<script src="\node_modules\bootstrap\dist\js\bootstrap.bundle.min.js"></script>
</head>
<html lang="zh-Hant-TW">
<!-- 引入檔頭 -->
{include file="header.tpl"}
<body>
navbar.tpl