【问题标题】:php getting substring from a stringphp从字符串中获取子字符串
【发布时间】:2010-10-02 19:49:03
【问题描述】:

我有下一个网址:http://domen.com/aaa/bbb/ccchttp://domen.com/后面的字符串如何获取?

非常感谢。

【问题讨论】:

    标签: php regex string url


    【解决方案1】:
    $sub = substr($string, 0, 10);
    

    但是,如果您确实想要解析 URL(即,您希望它适用于所有 URL),请使用 parse_url。对于“http://domen.com/aaa/bbb/ccc”,它会给你一个这样的数组:

    Array
    (
        [scheme] => http
        [host] => domen.com
        [user] => 
        [pass] => 
        [path] => /aaa/bbb/ccc
        [query] => 
        [fragment] => 
    )
    

    然后您可以将其编译为原始 url(以获取 http://domen.com/):

    $output = $url['scheme'] . "://" . $url['host'] . $url['path'];
    

    假设 $url 包含 parse_url 结果。

    【讨论】:

    • substr 示例如果属于 substr($string, 17) 种类,则更适合此问题。但无论如何,如果适用,应该使用parse_url
    • ^ 字符数我没数。
    【解决方案2】:

    你可以使用PHP的split

    您的代码将类似于:

    $s = "http://domen.com/aaa/bbb/ccc";
    $vals = split("http://domen.com/", $s);
    // $v will contain aaa/bbb/ccc
    $v = $vals[1];
    

    【讨论】:

    • PHP 不支持数组解引用,所以split(...)[0] 不起作用。您需要将结果存储在变量中,然后访问成员...
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        如果您只是想要字符串并且“http://domen.com/”部分是固定的:

        $url = 'http://domen.com/aaa/bbb/ccc';
        $str = str_replace('http://domen.com/','',$url);

        【讨论】:

          【解决方案6】:

          使用正则表达式,例如函数 preg_replace

          【讨论】:

            【解决方案7】:

            试试这个:

            preg_replace('/^.*?\w\//', '', $url)
            

            【讨论】:

              猜你喜欢
              • 2015-08-21
              • 2012-02-10
              • 1970-01-01
              • 1970-01-01
              • 2015-08-06
              • 2013-06-27
              • 2012-01-12
              • 2017-10-16
              相关资源
              最近更新 更多