PHP编程入门指南:零基础学习PHP语法与实战案例 | 网页开发教程

2025-07-08 0 29

第一部分:PHP开发环境与基础语法

1.1 什么是PHP?

PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,专门用于Web开发。PHP代码在服务器上执行,然后将结果以HTML形式发送到浏览器。

主要特点:​

  • 开源免费
  • 跨平台(Windows/Linux/macOS)
  • 与HTML完美融合
  • 强大的数据库支持
  • 丰富的内置函数库

1.2 搭建开发环境

使用XAMPP一站式解决方案:

  1. 下载XAMPP(https://www.apachefriends.org
  2. 安装并启动Apache和MySQL服务
  3. 创建项目文件夹:C:\xampp\htdocs\php_project
  4. 创建第一个PHP文件:index.php
 
<?php
    // 第一个PHP程序
    echo "Hello, PHP World!";
?>

访问:http://localhost/php_project/index.php


第二部分:PHP核心语法

2.1 变量与数据类型

<?php
// 变量声明(以$开头)
$name = "John Doe";
$age = 30;
$height = 1.85;
$isStudent = true;
$skills = array("HTML", "CSS", "JavaScript");

// 输出变量
echo "<h2>用户信息</h2>";
echo "姓名: $name <br>";
echo "年龄: $age <br>";
echo "身高: $height 米 <br>";
echo "是否学生: " . ($isStudent ? "是" : "否") . "<br>";

// 遍历数组
echo "技能: ";
foreach($skills as $skill) {
    echo $skill . ", ";
}
?>

2.2 运算符与表达式

<?php
$a = 15;
$b = 4;

// 算术运算符
$sum = $a + $b;      // 19
$difference = $a - $b; // 11
$product = $a * $b;   // 60
$quotient = $a / $b;  // 3.75
$remainder = $a % $b; // 3

// 比较运算符
$isEqual = ($a == $b);      // false
$isGreater = ($a > $b);     // true
$isIdentical = ($a === $b); // false(值与类型都相同)

// 逻辑运算符
$andResult = ($a > 10 && $b < 5); // true
$orResult = ($a < 10 || $b > 3);  // true
$notResult = !($a == $b);        // true
?>

2.3 控制结构

条件语句

<?php
$score = 85;

// if-elseif-else
if ($score >= 90) {
    $grade = "A";
} elseif ($score >= 80) {
    $grade = "B";
} elseif ($score >= 70) {
    $grade = "C";
} else {
    $grade = "D";
}

echo "分数: $score, 等级: $grade<br>";

// switch语句
$day = date("N"); // 获取当前星期几(1-7)

switch ($day) {
    case 1:
        echo "今天是周一";
        break;
    case 2:
        echo "今天是周二";
        break;
    // ...
    default:
        echo "今天是周末";
        break;
}
?>

循环语句

<?php
// while循环
$i = 1;
echo "<h3>乘法表 (while)</h3>";
while ($i <= 10) {
    echo "5 × $i = " . (5 * $i) . "<br>";
    $i++;
}

// for循环
echo "<h3>斐波那契数列 (for)</h3>";
$num1 = 0;
$num2 = 1;

for ($j = 1; $j <= 10; $j++) {
    // 计算下一个数
    $next = $num1 + $num2;
    
    echo "$num1, ";
    
    // 更新数字
    $num1 = $num2;
    $num2 = $next;
}
?>

第三部分:PHP函数与表单处理

3.1 自定义函数

<?php
// 函数定义
function calculateCircle($radius) {
    $area = pi() * pow($radius, 2);
    $circumference = 2 * pi() * $radius;
    
    return array(
        'area' => round($area, 2),
        'circumference' => round($circumference, 2)
    );
}

// 函数调用
$radius = 7.5;
$results = calculateCircle($radius);

echo "<h3>圆的计算结果</h3>";
echo "半径: $radius<br>";
echo "面积: {$results['area']}<br>";
echo "周长: {$results['circumference']}";
?>

3.2 PHP与HTML表单交互

 
<!-- form.html -->
<!DOCTYPE html>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <form action="process_form.php" method="POST">
        <label>用户名: <input type="text" name="username" required></label><br>
        <label>邮箱: <input type="email" name="email" required></label><br>
        <label>密码: <input type="password" name="password" required></label><br>
        <label>性别:</label>
        <input type="radio" name="gender" value="male"><input type="radio" name="gender" value="female"><br>
        
        <input type="submit" value="注册">
    </form>
</body>
</html>
<?php
// process_form.php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 获取表单数据
    $username = htmlspecialchars($_POST['username']);
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $password = $_POST['password'];
    $gender = isset($_POST['gender']) ? $_POST['gender'] : '未知';
    
    // 简单验证
    $errors = array();
    
    if (empty($username)) {
        $errors[] = "用户名不能为空";
    }
    
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = "邮箱格式无效";
    }
    
    if (strlen($password) < 6) {
        $errors[] = "密码至少需要6个字符";
    }
    
    // 显示结果
    if (empty($errors)) {
        echo "<h2>注册成功!</h2>";
        echo "用户名: $username<br>";
        echo "邮箱: $email<br>";
        echo "性别: $gender";
        
        // 在实际应用中,这里会存储到数据库
    } else {
        echo "<h2>发生错误:</h2>";
        foreach ($errors as $error) {
            echo "<p>$error</p>";
        }
        echo '<p><a href="form.html" rel="external nofollow" >返回表单</a></p>';
    }
} else {
    // 不是POST请求时重定向
    header("Location: form.html");
    exit();
}
?>

第四部分:文件操作与数据库基础

4.1 文件读写操作

<?php
// 写入文件
$logFile = "visits.log";

// 当前日期时间
$timestamp = date("Y-m-d H:i:s");

// 文件内容
$data = "$timestamp - 用户访问\n";

// 追加写入
file_put_contents($logFile, $data, FILE_APPEND);

echo "访问已记录到 $logFile<br>";

// 读取文件
if (file_exists($logFile)) {
    echo "<h3>访问记录:</h3>";
    echo "<pre>" . file_get_contents($logFile) . "</pre>";
} else {
    echo "没有找到访问记录文件";
}
?>

4.2 MySQL数据库操作

<?php
// 数据库连接信息
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "php_demo";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 创建表(如果不存在)
$sql = "CREATE TABLE IF NOT EXISTS users (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

if ($conn->query($sql) !== TRUE) {
    echo "创建表错误: " . $conn->error;
}

// 插入数据
$sql = "INSERT INTO users (username, email)
        VALUES ('Alice', 'alice@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功<br>";
} else {
    echo "错误: " . $sql . "<br>" . $conn->error;
}

// 查询数据
$sql = "SELECT id, username, email, created_at FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<h3>用户列表</h3>";
    echo "<table border='1'>";
    echo "<tr><th>ID</th><th>用户名</th><th>邮箱</th><th>注册时间</th></tr>";
    
    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row["id"] . "</td>";
        echo "<td>" . $row["username"] . "</td>";
        echo "<td>" . $row["email"] . "</td>";
        echo "<td>" . $row["created_at"] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "没有找到用户记录";
}

// 关闭连接
$conn->close();
?>

第五部分:完整案例 – 简易留言板

<?php
// 配置信息
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "guestbook";
$table_name = "messages";

// 连接数据库
$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);

if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}

// 创建表(如果不存在)
$create_table = "CREATE TABLE IF NOT EXISTS $table_name (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    message TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

if ($conn->query($create_table) !== TRUE) {
    die("创建表失败: " . $conn->error);
}

// 处理表单提交
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['submit'])) {
    $name = $conn->real_escape_string($_POST['name']);
    $email = $conn->real_escape_string($_POST['email']);
    $message = $conn->real_escape_string($_POST['message']);
    
    if (!empty($name) && !empty($message)) {
        $insert_sql = "INSERT INTO $table_name (name, email, message) 
                       VALUES ('$name', '$email', '$message')";
        
        if ($conn->query($insert_sql) !== TRUE) {
            echo "留言提交失败: " . $conn->error;
        }
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>简易留言板</title>
    <style>
        body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
        .message { background: #f9f9f9; border: 1px solid #ddd; padding: 15px; margin: 10px 0; }
        .message .meta { color: #666; font-size: 0.9em; margin-bottom: 10px; }
        form { margin: 30px 0; padding: 20px; background: #f0f8ff; }
        label { display: block; margin: 10px 0; }
        input, textarea { width: 100%; padding: 8px; }
    </style>
</head>
<body>
    <h1>简易留言板</h1>
    
    <!-- 留言表单 -->
    <form method="POST" action="">
        <label>姓名:
            <input type="text" name="name" required>
        </label>
        
        <label>邮箱:
            <input type="email" name="email">
        </label>
        
        <label>留言内容:
            <textarea name="message" rows="5" required></textarea>
        </label>
        
        <input type="submit" name="submit" value="提交留言">
    </form>
    
    <h2>所有留言</h2>
    
    <?php
    // 查询留言
    $select_sql = "SELECT name, email, message, created_at 
                  FROM $table_name 
                  ORDER BY created_at DESC";
    
    $result = $conn->query($select_sql);
    
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            echo '<div class="message">';
            echo '<div class="meta">';
            echo "来自: " . htmlspecialchars($row["name"]);
            if (!empty($row["email"])) {
                echo " (" . htmlspecialchars($row["email"]) . ")";
            }
            echo " - " . $row["created_at"];
            echo '</div>';
            echo '<p>' . nl2br(htmlspecialchars($row["message"])) . '</p>';
            echo '</div>';
        }
    } else {
        echo "<p>还没有留言,赶快留下第一条吧!</p>";
    }
    
    // 关闭数据库连接
    $conn->close();
    ?>
</body>
</html>

学习建议

  1. 每日编码​:PHP需要通过大量练习掌握
  2. 小步前进​:从简单功能开始逐步复杂化
  3. 阅读文档​:PHP官方手册是最好参考资料
  4. 参与项目​:尝试开发小型实用工具或网站
  5. 加入社区​:Stack Overflow、GitHub等平台获得帮助

PHP作为服务器端语言,配合MySQL数据库,是构建动态网站的强力组合。通过本教程的基础学习,您可以继续深入掌握面向对象编程、框架使用(Laravel等)、API开发等高级主题。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

淘吗网 php PHP编程入门指南:零基础学习PHP语法与实战案例 | 网页开发教程 https://www.taomawang.com/server/1.html

上一篇:

已经没有上一篇了!

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务