.php 文件是包含 PHP 腳本代碼的文本文件,需經 PHP 解析器執行後輸出(通常為 HTML/JSON/圖片等)。本文面向初學者,涵蓋:文件本質、編輯器選擇、本地運行環境搭建、代碼執行驗證、常見誤區。
<?php ... ?> 標簽中(短標簽 <? ... ?> 需啟用 short_open_tag,不推薦)。.php,也可配置 .phtml、.php7 等。| 工具類別 | 推薦 | 特點 |
|---|---|---|
| 專業 IDE | PhpStorm、VS Code + PHP Intelephense、NetBeans、Eclipse PDT | 智能提示、調試、重構、Git 整合、框架支援 |
| 輕量編輯器 | Sublime Text、Notepad++、Notepad2、Vim/Neovim | 啟動快、適合閱覽/小改動 |
| 在線編輯 | GitHub Codespaces、Gitpod、Replit、PHPFiddle | 無需本地環境、適合面試/教學/臨時測試 |
⚠️ Windows 記事本**不推薦**:易誤加 BOM、不支援 Unix 換行符、無語法高亮、無編碼控制。
PHP 是伺服器端語言,**瀏覽器不能直接打開 .php 文件**(會顯示源碼或下載)。必須通過 Web 服務器(Nginx/Apache)或 CLI 模式調用 PHP 解析器。
sudo apt install nginx php-fpm mysql。# 1. 安裝
sudo apt update && sudo apt install nginx php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-curl php8.1-zip php8.1-gd
# 2. Nginx 站點配置 /etc/nginx/sites-available/default
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
}
# 3. 重載
sudo nginx -t && sudo systemctl reload nginx
sudo systemctl restart php8.1-fpm
# 進入項目目錄
cd /path/to/project
# 啟動:監聽所有介面 8000 端口
php -S 0.0.0.0:8000
# 瀏覽器訪問 https://localhost:8000
# 支援路由腳本:php -S 0.0.0.0:8000 router.php
<?php
// info.php
phpinfo(); // 顯示完整配置信息
// hello.php
echo "Hello, PHP " . PHP_VERSION . "!";
// 陣列輸出
$data = ['name' => 'PHP', 'version' => PHP_VERSION, 'sapi' => PHP_SAPI];
header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
?>
| 誤區 | 正確認知 |
|---|---|
| 雙擊 .php 文件就能運行 | 需經 Web 服務器或 CLI 解析,瀏覽器只識別輸出結果 |
| PHP 代碼寫在 <script> 標籤裡 | PHP 在服務器執行,輸出到 HTML 中;JS 在瀏覽器執行 |
| include 'https://example.com/file.php' | 遠程包含極危險,已被移除;應用 API 或本地文件 |
| 修改 .php 文件後瀏覽器刷新不生效 | Opcache 緩存、瀏覽器緩存、CDN 緩存;開發環境關閉 Opcache 或重啟 php-fpm |
| 中文亂碼 | 文件存為 UTF-8 無 BOM、header('Content-Type: text/html; charset=utf-8')、數據庫連接 set names utf8mb4 |
# 直接運行文件
php script.php
# 運行代碼片段
php -r 'echo "Hello " . PHP_VERSION . "\n";'
# 檢查語法
php -l script.php
# 交互式 Shell
php -a
# 交互模式輸入:echo 1+1; Ctrl+D 退出
# 獲取幫助
php --help
php --modules # 查看已載入擴展