繁体   English   中英

parse_url函数php

[英]parse_url function php

我正在使用php的parse_url从URL内容中提取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

我如何避免这种情况?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM