php - regex hostname çıkarma

3 Cevap php

Ben sadece 'stackoverflow' bölümü ve hiçbir www tükürmek bir regex ifadesi için etrafa edilmiştir. veya. com vs bulabildiğim tüm url geçerli olsaydı ... Ben bu kadar ben şimdi hangi site belirlemek için arıyorum belirlemek için php url filtresi kullanmış kontrol etmek oldu.

Ben bu yüzden birisi daha iyi bir çözüm öneriyor / kontrol edebilirsiniz umuyorum önce bir ifade yazdım.

preg_match('@^(?:http://)(?:www.)?([^.]+)@i', $url, $matches)

edit: All the url's I am dealing with are .com if that helps

3 Cevap

düzenli ifadeler kullanmadan bir-liner!

$url = 'http://stackoverflow.com';
$d = array_shift( explode( '.', str_replace('www.', '', parse_url( $url, PHP_URL_HOST )) ) );
echo $d;

PHP'nin parse_url() function düşündünüz mü?

Eğer yaşıyorsanız şey gibi. Com basit bir şey, bir URL ve etki sonu olduğunu biliyorsanız

preg_match('#([^\.]*)\.com#', $url, $matches);

hile yapmak gerekir.

Bu www.com.foo.com gibi bir etki başarısız olur ama durumunuza bağlı olarak yeterli olabilir iken.