Để lấy URL của trang hiện tại, PHP cung cấp một biến siêu toàn cầu $_SERVER. $_SERVER là một biến có sẵn của PHP, được sử dụng để lấy URL của trang hiện tại. Nó là một biến siêu toàn cầu, có nghĩa là nó luôn có sẵn trong mọi phạm vi
Nếu chúng tôi muốn có URL đầy đủ của trang, thì chúng tôi sẽ cần kiểm tra giao thức [hoặc tên lược đồ], cho dù đó là https hay http. Xem ví dụ bên dưới
đầu ra
Ghi chú. Hàm isset[] được sử dụng ở đây để kiểm tra xem HTTPS đã được bật hay chưa. Nó kiểm tra xem một biến có tồn tại hay không
Hoặc, chúng ta cũng có thể lấy URL đầy đủ của trang hiện tại bằng một cách khác được cung cấp trong ví dụ tiếp theo
đầu ra
Để chỉ lấy tên của trang hiện tại được mở trên trình duyệt, hãy xem ví dụ bên dưới
đầu ra
Phân đoạn url mà tôi cố lấy nằm trên danh mục phụ của trang điều trị nên tôi nghĩ phân đoạn url dành cho trang hiện tại
Tôi nhận được url của url điều trị hoặc tiêu đề của điều trị nhưng tôi không thể nhận được đoạn cuối cùng của url điều trị
In reply to adrian,
Thank you very much for your function. There is a small issue with your relative protocol function. You need to remove the // when making the url the path. Here is the new function.
function resolve_url[$base, $url] {
if [!strlen[$base]] return $url;
// Step 2
if [!strlen[$url]] return $base;
// Step 3
if [preg_match['!^[a-z]+:!i', $url]] return $url;
$base = parse_url[$base];
if [$url{0} == "#"] {
// Step 2 [fragment]
$base['fragment'] = substr[$url, 1];
return unparse_url[$base];
}
unset[$base['fragment']];
unset[$base['query']];
if [substr[$url, 0, 2] == "//"] {
// Step 4
return unparse_url[array[
'scheme'=>$base['scheme'],
'path'=>substr[$url,2],
]];
} else if [$url{0} == "/"] {
// Step 5
$base['path'] = $url;
} else {
// Step 6
$path = explode['/', $base['path']];
$url_path = explode['/', $url];
// Step 6a: drop file from base
array_pop[$path];
// Step 6b, 6c, 6e: append url while removing "." and ".." from
// the directory portion
$end = array_pop[$url_path];
foreach [$url_path as $segment] {
if [$segment == '.'] {
// skip
} else if [$segment == '..' && $path && $path[sizeof[$path]-1] != '..'] {
array_pop[$path];
} else {
$path[] = $segment;
}
}
// Step 6d, 6f: remove "." and ".." from file portion
if [$end == '.'] {
$path[] = '';
} else if [$end == '..' && $path && $path[sizeof[$path]-1] != '..'] {
$path[sizeof[$path]-1] = '';
} else {
$path[] = $end;
}
// Step 6h
$base['path'] = join['/', $path];
}
// Step 7
return unparse_url[$base];
}
Các đoạn URL được sử dụng cho nhiều mục đích trong ứng dụng web. Bạn có thể dễ dàng phân tích cú pháp phân đoạn URL bằng cách sử dụng hàm parse_url[] trong PHP. Ở đây chúng tôi sẽ cung cấp mã ví dụ để lấy các phân đoạn URI và phân đoạn URL cuối cùng bằng PHP
Nhận phân đoạn URI trong PHP
Sử dụng đoạn mã sau để nhận các phân đoạn URL của URL hiện tại. Nó trả về tất cả các phân đoạn của URL hiện tại dưới dạng một mảng
$this->uri->segment[n] Hàm phân đoạn cho phép bạn truy xuất chuỗi URI dạng phân đoạn cụ thể trong đó n là số phân đoạn. Các phân đoạn được đánh số từ trái sang phải. Ví dụ: nếu URI của bạn như. Theo ví dụ trên, hàm phân đoạn URI cho kết quả theo n tham số. 01-Jul-2020