• PHP扩展功能 ---- 伪静态


    一、入门三部曲

    1、什么是伪静态?

    改写URL,以静态的url形式访问页面,但其实是用PHP一类的动态脚本来处理的。

    2、为什么要用伪静态?

    需要动态获取数据,但是又希望能够对搜索引擎友好。

    3、怎么用伪静态?

    (1)隐藏入口文件
    (2)将url参数形式中的?、&、=进行转换

    如: http://localhost/index.php?m=home&c=user&a=login改写成http://localhost/home/user/login.html的形式
    更多的参数即作为get传递的额外参数

    二、伪静态在PHP中的应用

    1、隐藏入口文件

    (1)修改apache配置文件

    • 开启rewrite_module功能
    LoadModule rewrite_module modules/mod_rewrite.so
    

    (2)允许重启

    <Directory "${INSTALL_DIR}/www/">
        Options +Indexes +FollowSymLinks +Multiviews
        AllowOverride all
        Require local
    </Directory>
    

    (3)在index.php的同级目录下创建.htaccess文件

    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>
    

    2、参数优化

    访问优化后的url时,需要将路由信息转换为模块、控制器、方法(操作)名。

    参数个数大于3时,后面的参数作为params数组

    // http://localhost/home/user/login.html 以此url为例
    //$_SERVER['PATH_INFO'] => /home/user/login.html
    
    $suffix = strrchr($_SERVER['PATH_INFO'], '.');  // => .html
    
    $pathInfo = str_replace($suffix,'',$_SERVER['PATH_INFO']); // => /home/user/login
    
    $path = substr($pathInfo, 1); // => home/user/login
    
    $arr = explode('/'. $path); //['home','user','login']
    
    • strrchr(string $haystack , mixed $needle): 查找指定字符$needle在字符串$haystack中的最后一次出现
    • str_replace( mixed $search , mixed $replace , mixed $subject [, int &$count ] ): 返回将$subject中全部的$search都用$replace替换之后的字符串或数组。
    • substr( string $string , int $start [, int $length ]): 返回字符串 $string$start$length 参数指定的子字符串。
    • explode(string $delimiter , string $string [, int $limit ]): 此函数返回由字符串组成的数组,每个元素都是 $string 的一个子串,它们被字符串 $delimiter 作为边界点分割出来。
  • 相关阅读:
    小公司的10k前端工程师应该会什么?
    webService和Restful
    码农如何主动学习?
    20个Web前端开发工程师必看的国外网站
    网站主题和内容的三个类型
    HTTP慢速攻击
    Linux等待队列原理与实现
    签名你的每个 Git Commit
    浅谈 Linux 下常用 Socket 选项设置
    API接口设计,需要注意这4点
  • 原文地址:https://www.cnblogs.com/zqunor/p/8672831.html
Copyright © 2020-2023  润新知