Я хочу вычеркнуть все из URL, кроме домена. Так http://i.imgur.com/rA81kQf.jpg становится imgur.com.
$url = 'http://i.imgur.com/rA81kQf.jpg';
$parsedurl = parse_url($url);
$parsedurl = preg_replace('#^www\.(.+\.)#i', '$1', $parsedurl['host']);
// now if a dot exists, grab everything after it. This removes any potential subdomain
$parsedurl = preg_replace("/^(.*?)\.(.*)$/","$2",$parsedurl);
Вышесказанное работает, но я чувствую, что должен быть только одним preg_replace для этого. Любая идея, как я могу объединить два?
Вы можете использовать parse_url (), чтобы получить желаемый результат, как это,
$url = "http://i.imgur.com/rA81kQf.jpg";
$parseData = parse_url($url);
$domain = preg_replace('/^www\./', '', $parseData['host']);
$array = explode(".", $domain);
echo (array_key_exists(count($array) - 2, $array) ? $array[count($array) - 2] : "") . "." . $array[count($array) - 1];
который печатает
imgur.com
Других решений пока нет …