URL을 비교하고 배열에서 중복을 제거해야하지만 URL 만 호스트를 비교하고 싶습니다. 내가 비교할 때 나는 스킵 http와 https를 필요로한다. 내가 배열이있을 때 그래서 :URL 배열에서 호스트 이름을 비교하고 고유 한 값을 얻습니다.
$urls = array_udiff($urls, $urls, function ($a, $b) {
return strcmp(preg_replace('|^https?://(www\\.)?|', '', rtrim($a,'/')), preg_replace('|^https?://(www\\.)?|', '', rtrim($b,'/')));
});
그러나 그것은 나에게 빈 배열을 반환 :
$urls = array(
'http://www.google.com/test',
'https://www.google.com/test',
'https://www.google.com/example',
'https://www.facebook.com/example',
'http://www.facebook.com/example');
결과는
http://www.google.com/test
http://www.google.com/example
http://www.facebook.com/example
내가 좋아하는 비교하려 할 것이다. 그런 다음
<?php
function parseURLs(array $urls){
$rs = [];
foreach($urls as $url){
$segments = parse_url($url);
if(!in_array($segments['host'], $rs))
$rs[] = $segments['host'];
}
return $rs;
}
:
regex 태그를 추가 할 수 있습니다. – charlesreid1
[this] (http://php.net/manual/en/function.parse-url.php) – gmc
을 살펴보십시오. 그러나 어디에서 실제 예제 나 아이디어를 보여줄 수 있습니까? – LukeKov