【问题标题】:parse_url function phpparse_url 函数 php
【发布时间】:2012-09-11 15:22:38
【问题描述】:

我正在使用 php 的 parse_url 从我的 urls 内容中提取 tlds。 比我有一个顶级域数组,如果它们匹配,它们将与提取的顶级域进行比较。

  $url = parse_url($tag->getAttribute('href'));

  if (in_array($url['host'], $affi_urls) || $url['host'] == "www.example.com"){   

    $tag->setAttribute('href', '/redirect.php?url='.$href);       


   }

如果 ur['host'] 包含顶级域,这可以正常工作。如果 url['host'] 是相对路径而不是那里的大混乱。

/redirect.php?url=/example/test

我怎样才能避免这种情况?

【问题讨论】:

    标签: php parsing url


    【解决方案1】:

    您需要保存正在处理的页面的主机名。如果$url['host'] 为空,请使用该主机名代替。

    【讨论】:

      【解决方案2】:

      您应该对 url 参数进行编码。

      $tag->setAttribute('href', '/redirect.php?url='.urlencode($href));
      

      然后通过parse_url获取数据后,使用urldecode解码数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多