登录
首页 >  数据库 >  MySQL

傻瓜式的php+mysql伪静态(真实存在的html页面)

来源:SegmentFault

时间:2023-02-17 10:16:06 445浏览 收藏

有志者,事竟成!如果你在学习数据库,那么本文《傻瓜式的php+mysql伪静态(真实存在的html页面)》,就很适合你!文章讲解的知识点主要包括MySQL、PHP、伪静态,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

伪静态大家应该知道
例如你的php页面生成的页面为xxx.php?id=1
为了seo和容易被百度等搜索引擎抓取,也为了防止高并发的时候占用服务器资源
我们应该把xxx.php?id=1页面的链接显示为xxx_1.html等类似格式,反正就是.html为后缀。

我自己没有深入研究这个,但是我简单实现了这个。

1 简单的列表

<?php //连接数据库
$con = mysql_connect("localhost","root","root");
//选择数据库
mysql_select_db("test", $con);
//查询数据库
$result = mysql_query("SELECT * FROM list");
//遍历输出数据库
while($row = mysql_fetch_array($result))
  {
      $url = $row["url"];
      $id = $row["id"];
      if(empty($url)){
          echo "<a target='_blank'  href='https://www.17golang.com/gourl/?redirect=MDAwMDAwMDAwML57hpSHp6VpkrqbYLx2eayza4KafaOkbLS3zqSBrJvPsa5_0Ia6sWuR4Juaq6t9nq5seaWTgKGvtZXSo4SFidW-d37Ogdyxo5KthWCxdnFkv42jYIp9grCzlbCigZyimbOImdCF3cijheB-nLCJfWa-s6Nt' rel='nofollow'>$row[title]<br>";
      }else{
          echo "<a href="http://localhost/20180417/%24url"></a>$row[title]<br>";
      }
  }
mysql_close($con);
?>

如图:

clipboard.png

此时,所有的标题超链接显示的都是p.php?id=x
重要的是p.php页面

p.php遍历输出的时候
查询了数据库url字段,如果为空,那么就开始进行file_get_contents获取整个页面的html代码,然后把代码写入到一个名为LKY_$id.html的html文件,其中$id是当前页面的id,如果当前页面id=1,那么生成的文件名为LKY_1.html,接着就把这个文件名更新到数据库的url字段





<?php //连接数据库
$con = mysql_connect("localhost","root","root");
//选择数据库
mysql_select_db("test", $con);
//获得id
$id =$_GET["id"];
//查询数据库
$result = mysql_query("SELECT * FROM list where id =".$id);
//遍历输出数据库
while($row = mysql_fetch_array($result))
  {
      $url = $row["url"];
      if(empty($url)){
          $get_html = "http://localhost/20180417/get_html.php?id=$id";
          $html_utl = "LKY_$id.html";
        $con_html = file_get_contents($get_html);
        $html = fopen($html_utl, "w");
        fwrite($html, $con_html);
        fclose($html);
        echo $row["zhengwen"];
        mysql_query("UPDATE list SET url = '$html_utl' WHERE id = '$id'");
      }else{
          echo $row["zhengwen"];
      }
  }
mysql_close($con);
?>

当用户访问xxx.p.php?id=1的时候,就会进行查询数据库,如果url字段为空,那么就获取整个页面的html,这个获取html页面的来源又用一个get_html.php进行获取





<?php //连接数据库
$con = mysql_connect("localhost","root","root");
//选择数据库
mysql_select_db("test", $con);
//获得id
$id =$_GET["id"];
//查询数据库
$result = mysql_query("SELECT * FROM list where id =".$id);
//遍历输出数据库
while($row = mysql_fetch_array($result))
  {
      echo $row["zhengwen"];
  }
mysql_close($con);
?>

获取到了之后生成html文件并保存在服务器我们指定的目录,如果访问xxx.p.php?id=1,判断url字段不为空,则直接输出该页数据或者跳转到LKY_1.html

clipboard.png

那么在首页的列表中也做了相应的判断,判断url是否为空,如果为空,那么输出的是p.php?id=1的超链接,否则从数据库取url字段的html文件名,则输出LKY_1.html

clipboard.png

要说的是,这是实实在在生成html文件的!

好了,本文到此结束,带大家了解了《傻瓜式的php+mysql伪静态(真实存在的html页面)》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>