Bir URL kısmını bulmak için PHP Kullanımı

5 Cevap php

Bu etki atın:

http://www.?.co.uk/elderly-care-advocacy/mental-capacity-act-advance-medical-directive.html

Nasıl olursa olsun, ya da hiç değişiklik olsun birinci ve ikinci eğik çizgi arasındaki her şeyi bulmak için PHP kullanabilirsiniz?

Ie. yaşlı-bakım-savunuculuk

Herhangi helo büyük mutluluk duyacağız.

5 Cevap

kafamın üst kapalı:

$url = http://www.example.co.uk/elderly-care-advocacy/mental-capacity-act-advance-medical-directive.html
$urlParts = parse_url($url); // An array
$target_string = $urlParts[1] // 'elderly-care-advocacy'

Şerefe

explode('/', $a);

Yapmanız gereken tüm ilk url ayrıştırmak, ve sonra dize patlayabilir ve ilk bölümünü olsun. Aşağıdaki gibi lok olurdu bazı aklı kontrolleri ile:

$url = 'http://www.?.co.uk/elderly-care-advocacy/mental-capacity-act-advance-medical-directive.html';
$url_parts = parse_url($url);
if (isset($url_parts['path'])) {
    $path_components = explode('/', $ul_parts['path']);
    if (count($path_components) > 1) {
        // All is OK. Path's first component is in $path_components[0]
    } else {
        // Throw an error, since there is no directory specified in path
        // Or you could assume, that $path_components[0] is the actual path
    }
} else {
    // Throw an error, since there is no path component was found
}

Ben bir Regular Expression bunun için iyi olması gerektiğini düşünüyorum.

Örneğin kullanmayı deneyin: /[^/]+/ sizin örnekte bir dizinin ikinci endeksi olarak size /elderly-care-advocacy/ vermelidir.

(İlk dize / www.?.com/ olduğunu)

Parse_URL en iyi seçenektir. Bu aşağı seçici sorgulayabilirsiniz bileşenleri içine URL dizesi kırar.

Bu işlev kullanılabilir:

function extract_domain($url){

	if ($url_parts = parse_url($url), $prefix = 'www.', $suffix = '.co.uk') {
		$host = $url_parts['host'];
		$host = str_replace($prefix,'',$host);
		$host = str_replace($suffix,'',$host);
		return $host;
	}
	return false;
}

$host_component = extract_domain($_SERVER['REQUEST_URI']);