【问题标题】:How to remove first part of url in PHP?如何在 PHP 中删除 url 的第一部分?
【发布时间】:2011-08-17 13:28:09
【问题描述】:

我想删除 PHP 中 url 的第一部分。示例:

http://www.domain.com/sales
http://otherdomain.org/myfolder/seconddir
/directory

必须是:

/sales
/myfolder/seconddir
/directory

因为 url 是动态的,我想我必须用 preg 替换来做到这一点,但我不知道怎么做。有时 url 已经被删除了(见最后一个例子)。 如何做到这一点?

【问题讨论】:

  • 这些网址来自哪里?
  • 来自输入表单。但是下面使用 parse_url 的方法对我有用!谢谢。
  • @user735795:那么你应该接受它(点击最有帮助的答案旁边的复选标记)。

标签: php regex preg-replace


【解决方案1】:

试试:

<?php
$url = 'http://otherdomain.org/myfolder/seconddir';
$urlParts = parse_url($url);

print_r($urlParts);

然后看看:

http://php.net/manual/en/function.parse-url.php

【讨论】:

    【解决方案2】:

    这个parse_url有一个内置的php函数。

    来自链接的网站:

    <?php
    $url = 'http://username:password@hostname/path?arg=value#anchor';
    
    print_r(parse_url($url));
    
    echo parse_url($url, PHP_URL_PATH);
    ?>
    

    上面的例子会输出:

    Array
    (
        [scheme] => http
        [host] => hostname
        [user] => username
        [pass] => password
        [path] => /path
        [query] => arg=value
        [fragment] => anchor
    )
    /path
    

    【讨论】:

    • 请注意,这不适用于不包含 ex 方案的 URL。 www.otherdomain.org/myfolder/seconddir
    【解决方案3】:

    你可以使用path info:

    <?php
    print_r(pathinfo("http://www.domain.com/sales"));
    print_r(pathinfo("http://otherdomain.org/myfolder/seconddir"));
    print_r(pathinfo("/directory"));
    ?>
    

    输出:

    Array
    (
        [dirname] => http://www.domain.com
        [basename] => sales
        [filename] => sales
    )
    Array
    (
        [dirname] => http://otherdomain.org/myfolder
        [basename] => seconddir
        [filename] => seconddir
    )
    Array
    (
        [dirname] => /
        [basename] => directory
        [filename] => directory
    )
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多