zoukankan      html  css  js  c++  java
  • PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名

    javascript实现:

    top.location.href   顶级窗口的地址
    this.location.href 当前窗口的地址



    复制代码
    复制代码
    PHP实现
    复制代码
    复制代码
    #测试网址:     http://localhost/blog/testurl.php?id=5

    //获取域名或主机地址
    echo $_SERVER['HTTP_HOST']."<br>"; #localhost

    //获取网页地址
    echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

    //获取网址参数
    echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

    //获取用户代理
    echo $_SERVER['HTTP_REFERER']."<br>";

    //获取完整的url
    echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    #http://localhost/blog/testurl.php?id=5

    //包含端口号的完整url
    echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    #http://localhost:80/blog/testurl.php?id=5

    //只取路径
    $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
    echo dirname($url);
    #http://localhost/blog
    复制代码
    复制代码
    ==========================================

    php URL处理函数

    Posted on 2017-11-24 18:24 星_初落 阅读(495) 评论(0) 编辑 收藏

    parse_url()    basename()    pathinfo()    dirname() 用法

    parse_url()

           是一计算机函数,功能是解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
    本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

    范例1

    复制代码
    $usr = "https://baike.baidu.com/item/parse_url/3067021?fr=aladdin";
    
    print_r(parse_url($usr));

    Array //输出结果
    (
        [scheme] => https
        [host] => baike.baidu.com
        [path] => /item/parse_url/3067021
        [query] => fr=aladdin
    )
    复制代码

    parse_usr()有两个参数,第一个参数是url地址,第二个参数是你想要的部分(这个可写可不写),第二个参数不写返回的是关联数组。

    范例2

    复制代码
    $url = 'http://username:password@hostname/path?arg=value#anchor';
    var_dump(parse_url($url));
    
    array(7) { //输出结果
      ["scheme"]=>
      string(4) "http"
      ["host"]=>
      string(8) "hostname"
      ["user"]=>
      string(8) "username"
      ["pass"]=>
      string(8) "password"
      ["path"]=>
      string(5) "/path"
      ["query"]=>
      string(9) "arg=value"
      ["fragment"]=>
      string(6) "anchor"
    }
    复制代码


    以下是第二个参数与以上输出一一对应可得到对应的值
    PHP_URL_SCHEME
    PHP_URL_HOST
    PHP_URL_PORT
    PHP_URL_USER
    PHP_URL_PASS
    PHP_URL_PATH
    PHP_URL_QUERY
    PHP_URL_FRAGMENT

    如:

    $url = 'https://baike.baidu.com/item/parse_url/3067021?fr=aladdin';
    print_r(parse_url($url,PHP_URL_HOST));
    
    baike.baidu.com //输出结果 

    basename()

    basename -- 返回路径中的文件名部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

    范例1

    $path = "http://www.test.com/html/test.php";
    $file = basename($path);
    print_r($file);
    
    test.php //输出结果


    单是这个basename有个问题(这个是我认为的它会把test.php后面的内容一起输出出来)
    缺点范例

    $path = "http://www.test.com/html/test.php?k=1";
    $file = basename($path);
    print_r($file);
    test.php?k=1 //输出结果


    它可以结合上一个函数使用!
    范例

    $path = "http://www.test.com/html/test.php?k=1";
    $file = parse_url($path,PHP_URL_PATH);
    $f = basename($file);
    print_r($f);
    
    test.php //输出结果

    pathinfo()

    返回一个关联数组包含有 path 的信息。包括以下的数组单元:。

    范例1

    复制代码
    $path = "http://www.test.com/html/test.php?k=1";
    $path_parts = pathinfo($path);
    print_r($path_parts);
    
    Array //输出结果
    (
        [dirname] => http://www.test.com/html
        [basename] => test.php?k=1
        [extension] => php?k=1
        [filename] => test
    )
    复制代码


    可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME,PATHINFO_FILENAME 和 PATHINFO_EXTENSION。

    范例2

    $path = "http://www.test.com/html/test.php?k=1";
    $path_parts = pathinfo($path,PATHINFO_FILENAME);
    print_r($path_parts);
    
    test //输出结果

    dirname()

    dirname -- 返回路径中的目录部分。给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
    范例

    $path = "http://www.test.com/html/test.php?k=1";
    $dir = dirname($path);
    print_r($dir);
    
    http://www.test.com/html //输出结果
    ======================================================

    php获取文件名和后缀名

     

    php获取文件名

    1 function retrieve($url) 
    2 { 
    3 preg_match('//([^/]+.[a-z]+)[^/]*$/',$url,$match); 
    4 return $match[1]; 
    5 } 

    php获取文件扩展名 

    复制代码
    复制代码
    1 <?php 
    2 function getExt($url) 
    3 { 
    4 $path=parse_url($url); 
    5 $str=explode('.',$path['path']); 
    6 return $str[1]; 
    7 } 
    8 echo getExt('http://tools.jb51.net/abc/de/fg.php?id=1'); 
    9 ?> 
    复制代码
    复制代码

    basename:

    复制代码
    复制代码
    <?php
    $path = "/testweb/home.php";
    
    //显示带有文件扩展名的文件名
    echo basename($path);
    
    //显示不带有文件扩展名的文件名
    echo basename($path,".php");
    ?> 
    复制代码
    复制代码

    输出:

    home.php
    home



    ======================
    最终直接获取不带扩展名的文件名

    <?PHP
    echo basename($_SERVER['PHP_SELF'],".php");
    ?>



  • 相关阅读:
    C# 泛型约束 xxx<T> Where T:约束(一)
    [cb]UIGrid+UIStretch的自适应
    UIButton vs UIEventListener 事件处理
    NGUI Clip Animation (UI动画)
    TexturePacker的plist切成单独小图片
    Collider Collision 区别
    It’s Time To Think Linq
    [cb]NGUI事件及复杂UI管理
    Unity Mono
    【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
  • 原文地址:https://www.cnblogs.com/apolloren/p/9281562.html
Copyright © 2011-2022 走看看