Home  >  Article  >  Backend Development  >  Install pathinfo in php under linux

Install pathinfo in php under linux

不言
不言Original
2018-04-27 09:09:442348browse

这篇文章主要介绍了linux下php安装pathinfo,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

linux下php安装pathinfo

在Nginx.conf配置中,添加
location ~ [^/]\.php(/|$){
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    include fastcgi.conf;
    include pathinfo.conf;
}

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现。
location / {    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
        break;
    }
}

一个完整示例,请根据自己服务器加以修改
server {
        listen       80;
        server_name  www.dolphinphp.com *.dolphinphp.com;
        root   "/home/www/wwwroot/dolphinphp";
        location / {            index  index.html index.htm index.php;                #主要是这一段一定要确保存在
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=$1  last;                    break;
                }                #结束
            #autoindex  on;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^(.+\.php)(.*)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}


pathinfo是什么:pathinfo不是nginx的功能,pathinfo是php的功能。
php中有两个pathinfo,一个是环境变量$_SERVER['PATH_INFO'];另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;。
nginx能做的只是对$_SERVER['PATH_INFO]值的设置。

php中的pathinfo()
pathinfo()函数可以对输入的路径进行判断,以数组的形式返回文件路径的信息,数组包含以下元素。
  ● [dirname]  路径的目录
  ● [basename] 带后缀 文件名
  ● [extension]  文件后缀
  ● [filename]  不带后缀文件名(需php5.2以上版本)
例如
[php]
<?php
print_r(pathinfo("/nginx/test.txt"));
?>
[/php]
输出
PHP
1234567 Array(    [dirname] => /nginx    [basename] => test.txt    [extension] => txt    [filename] => test)


php中的$_SERVER[&#39;PATH_INFO&#39;]
PHP中的全局变量$_SERVER[&#39;PATH_INFO&#39;],PATH_INFO是一个CGI 1.1的标准,经常用来做为传参载体。
被很多系统用来优化url路径格式,最著名的如THINKPHP框架。
对于下面这个网址:
http://www.test.cn/index.php/test/my.html?c=index&m=search
我们可以得到 $_SERVER[&#39;PATH_INFO&#39;] = ‘/test/my.html’,而此时 $_SERVER[&#39;QUERY_STRING&#39;] = &#39;c=index&m=search&#39;;
如果不借助高级方法,php中http://www.test.com/index.php?type=search 这样的URL很常见,大多数人可能会觉得不太美观而且对于搜索引擎也是非常不友好的(实际上有没有影响未知),因为现在的搜索引擎已经很智能了,可以收入带参数的后缀网页,不过大家出于整洁的考虑还是想希望能够重写URL

相关推荐:

Windows7 PHP安装oci扩展

Windows下为PHP安装redis扩展



           


The above is the detailed content of Install pathinfo in php under linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn