美文网首页程序员
PHP让内容动起来

PHP让内容动起来

作者: 麦田里的程序员 | 来源:发表于2014-06-06 21:38 被阅读1129次

PHP让内容动起来

上一节最后写文章,然后点“发表”,结果文章怎么不见了?

因为那是静态HTML网页,不能处理数据。这时候就需要开发PHP程序了。

修改“发表页”create_article.html的form(表单)的action属性值,改成./store_article.php。代码如下:

<h1>写文章</h1>
<form action="./store_article.php" method="post">

./表示本目录,所以需要到网站根目录里创建store_article.php,它收到表单提交的数据后,保存到哪里呢?最简单的方法:本地文件。代码如下:

<?php
$input = $_POST;
$file = './articles.json';
$data = [];
if (file_exists($file)) {
    $tmp = file_get_contents($file); //读取文件,变成字符串
    if(!empty($tmp)) {
        $data = json_decode($tmp, true); //json解码成array
    }
}
$data[] = $input;
file_put_contents($file, json_encode($data)); //把字符串保存到文件
echo '发表成功';

能看懂这些代码吗?如果看不懂,自学一下PHP语法,很简单(预计需要0.5天)。推荐教材:《PHP官方手册:第一个 PHP 页面》php.net/manual/zh/tutorial.firstpage.php

然后创建一个index.php作为首页,用来读取所有文章,并显示一段摘要,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cmn-Hans" lang="cmn-Hans">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>在线阅读网</title>
    </head>
    <body>
        <h1>在线阅读网</h1>
        <div><a href="./create_article.html">写文章</a></div>
        <?php
        $file = './articles.json';
        if (file_exists($file)) {
            $tmp = file_get_contents($file);
            if (!empty($tmp)) {
                echo '<ul>';
                $data = json_decode($tmp, true);
                foreach($data as $k=>$v) {
                    $id = $k + 1;
                    echo '<li><a href="./show_article.php?id=' . $id . '">' . $v['title'] . '</a>';
                    echo '<p>' . mb_substr($v['content'], 0, 200, 'UTF-8') . '</p></li>';
                }
                echo '</ul>';
            }
        }
        ?>
    </body>
</html>

再创建一个show_article.php作为详情页,去显示单独的一篇文章,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cmn-Hans" lang="cmn-Hans">
    <?php
    $input = $_GET;
    $id = $input['id'];
    $file = './articles.json';
    if (file_exists($file)) {
        $tmp = file_get_contents($file);
        if (!empty($tmp)) {
            $articles = json_decode($tmp, true);
            $article = $articles[$id-1];
        }
    }
    ?>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title><?=$article['title']?> - 在线阅读网</title>
    </head>
    <body>
        <div><a href="./">回首页</a></div>
        <h1><?=$article['title']?></h1>
        <div>作者:<?=$article['author']?></div>
        <div><?=nl2br($article['content'])?>
        </div>
    </body>
</html>

本节代码下载:github.com/sinkcup/phbook/tree/0.2

开发完毕,在浏览器里访问,尝试录入一篇文章。如图:

写文章 发表成功,但右上角提示:HTML语法错误 发表成功,但出现乱码

然后回到首页,刷新,看到文章列表,可以点进去阅读,如图:

首页:能看到文章列表 详情页

总结一下

我的技术水平

HTML 服务器部署 PHP 数据存储 HTTP协议
HTML标准和语义化 安装WAMP/LAMP 让内容动起来 json文件存数据 GET、POST

作业

待解决的问题

  • PHP和HTML混写,很乱啊,怎么解决?

    且听下回分解。

  • 保存之后,在页面怎么出现HTML语法错误甚至乱码了?

    且听下回分解。

相关文章

  • PHP让内容动起来

    PHP让内容动起来 上一节最后写文章,然后点“发表”,结果文章怎么不见了? 因为那是静态HTML网页,不能处理数据...

  • 如何让内容流动起来

    优质的生态环境造就优质的内容运营平台,这个生态系统确保内容可以延绵不绝的进行输送。各种内容之间既会相互竞争,也会互...

  • three.js(29)-动画库

    让物体动起来 创建轨迹 让模型动起来

  • 来分享一下我的 PHP 学习路线

    内容目录: PHP 入门 PHP 进阶 PHP 高手模式 1. PHP 入门 PHP 入门没啥好说的,会基本编码,...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • CI的分页和文件上传小实例

    CI自带的内容 分页内容文件上传 分页使用 文件上传 user.php uploadfile.php

  • html知识

    1. 网页由什么组成 html-------网页内容 css---修饰网页 JavaScript---让网页动起来...

  • 1.2 从html中分离

    混合内容 标记外的内容会被忽略,使得 php 文件可以具备混合内容。php 可以嵌入 html 文档中。 使用条件...

  • PHP环境注释以及log

    环境: Mac已经集成了PHP环境 直接编写.php文件,内容为:

  • Archlinux 下安装itop 和 glpi

    安装lnmp 配置php 修改的内容 配置php-fpm 配置nginx 内容 新建网站的配置文件 内容如下: 配...

网友评论

    本文标题:PHP让内容动起来

    本文链接:https://www.haomeiwen.com/subject/usadtttx.html