我正在尝试使用parse_url从url获取主机。但是在某些查询中,我得到的结果是空的。这是我的功能:
function clean_url($urls){
$good_url=array();
for ($i=0;$i<count($urls);$i++){
$url=parse_url($urls[$i]);
//$temp_string=str_replace("http://", "", $urls[$i]);
//$temp_string=str_replace("https://", "", $urls[$i]);
//$temp_string=substr($temp_string, 0,stripos($temp_string,"/"));
array_push($good_url, $url['host']);
}
return $good_url;
}
输入数组:
Array (
[0] => https://en.wikipedia.org/wiki/Data
[1] => data.gov.ua/
[2] => e-data.gov.ua/
[3] => e-data.gov.ua/transaction
[4] => https://api.jquery.com/data/
[5] => https://api.jquery.com/jquery.data/
[6] => searchdatamanagement.techtarget.com/definition/data
[7] => www.businessdictionary.com/definition/data.html
[8] => https://data.world/
[9] => https://en.oxforddictionaries.com/definition/data
)
结果数组为空结果
Array (
[0] => en.wikipedia.org
[1] =>
[2] =>
[3] =>
[4] => api.jquery.com
[5] => api.jquery.com
[6] =>
[7] =>
[8] => data<
[9] => en.oxforddictionaries.com
)
最佳答案
其中一些正在解析的$urls
没有使parse_url
将主机识别为路径的方案。
例如,解析URL data.gov.ua/
将data.gov.ua/
返回为路径。添加方案例如https
到该网址,因此https://data.gov.ua/
将允许parse_url
将data.gov.ua/
识别为主机。
关于php - parse_url()PHP工作原理很奇怪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41307354/