2015-04-19 3 views
0

Я пытаюсь найти только имя сайта и домен, например, в случае images.google.com/thisIsJustAnExample он вернет google.com. это то, что я пытался сделать,Получение 2 последних элементов URL-адреса

$url = 'https://images.google.com/thisIsJustAnExample'; 
    $zobrazeni = array(); 
    $zobrazeni = parse_url($url); 
    $zobrazeni["host"] = explode(".", $zobrazeni["host"]); 
    $zobrazeni["host"] = $zobrazeni["host"][count($zobrazeni["host"])-2] .".". $zobrazeni["host"][count($zobrazni["host"])-1]; 

И это ошибка я получаю:

Примечание: Undefined смещение: -1 в C: \ XAMPP \ HTDOCS \ retezce.php в строке 25

Примечание: Undefined переменной: zobrazni в C: \ XAMPP \ HTDOCS \ retezce.php на линии 25

Примечание: Undefined смещение: -1 в C: \ XAMPP \ HTDOCS \ retezce.php на линии 25

+0

, что вы подразумеваете под последними двумя элементами на google.com? –

+0

Если у меня есть URL-адрес: https://www.google.com/?gfe_rd=cr&ei=Db4zVdPMGcag8wfm3oGQAQ&gws_rd=ssl#q=fddg Я хочу получить google.com – Mark

+0

@ Mark, 'parse_url' не обрабатывают субдомены, для вашего сценарий, который вы можете использовать Purl, см. здесь. https://github.com/jwage/purl –

ответ

0

Есть несколько способов сделать это, но один будет:

$url = 'https://images.google.com/thisIsJustAnExample'; 
    $zobrazeni = array(); 
    $zobrazeni = parse_url($url); 
    $zobrazeni = explode(".", $zobrazeni["host"]); 
    $zobrazeni = array_reverse($zobrazeni); 
    $zobrazeni = $zobrazeni[1] . ' .' . $zobrazeni[0]; 

Или вы могли бы получить длину массива и использования, что вместо того, чтобы вычесть 2.

+0

Thx много. Легко и просто. – Mark

1

просто играть с этим кодом, он должен напечатать "Google" "ком", если тот, что вы имели в виду. , просто помните, что count($verb) (в случае, если $verb is array) вернет число объектов в массиве.

$url = "http://stackoverflow.com/questions/29731201/getting-2-last-elements-of-a-url-address/29731258#29731258"; 
$verbs = explode('.', $url); 

$domainName = explode('/', $verbs[count($verbs)-2]); 
$domainExt = explode('/', $verbs[count($verbs)-1]); 

echo $domainName[2] . "." . $domainExt[0]; 
+0

Это выглядит многообещающе, но результат «http://images.google.com/thisIsJustAnExample» «google.com/thisIsJustAnExample» – Mark

+0

Я отредактировал свое сообщение, попробуйте этот @Mark – Danny

+0

Awesome! Последняя проблема связана с более длинными ссылками. «http: //» также появляется в ссылке. Я попытался скопировать URL-адрес этого сайта stackoverflow.com/question .... и результат был «http: // stackoverflow.com» – Mark

Смежные вопросы