Nasıl PHP bir URL'nin parçası ayıklamak?

3 Cevap php

Yani, ben bir dize bu url var:

http://www.domain.com/something/interesting_part/?somevars&othervars

PHP, nasıl tüm ama "interesting_part" kurtulabilirsiniz?

3 Cevap

...

$url = 'http://www.domain.com/something/interesting_part/?somevars&othervars';
$parts = explode('/', $url);
echo $parts[4];

Output:

interesting_part

Sen parse_url URL ile işlemleri yapmak için kullanmalısınız. İlk sonra, örneğin, kullanarak, istediğiniz değişiklikleri yapmak patlayabilir, daha sonra tekrar bir araya koymak, ayrıştırmak.

$uri = "http://www.domain.com/something/interesting_part/?somevars&othervars";
$uri_parts = parse_url( $uri );

/*
you should get:
 array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(14) "www.domain.com"
  ["path"]=>
  string(28) "/something/interesting_part/"
  ["query"]=>
  string(18) "somevars&othervars"
}
*/

...

// whatever regex or explode (regex seems to be a better idea now)
// used on $uri_parts[ "path" ]

...

$new_uri = $uri_parts[ "scheme" ] + $uri_parts[ "host" ] ... + $new_path ... 

Ilginç kısmı daima yolunun son kısmı ise:

echo basename(parse_url($url, PHP_URL_PATH));

[+] Bu sadece index.php veya herhangi bir diğer dosya isminden önce ? olmadan çalışacağını unutmayın. Bu bir iki durum için çalışacaktır:

$path = parse_url($url, PHP_URL_PATH);
echo  ($path[strlen($path)-1] == '/') ? basename($path) : basename(dirname($path));