Mục lục
ToggleHàm realpath()
sẽ trả về đường dẫn tuyệt đối của đường dẫn truyền vào. Đường dẫn tuyệt đối sẽ không bao gồm các thành phần /./ hoặc /../.
realpath ( string $path
) : string
$path
là đường dẫn tương đối. – Ghi chú: Trong khi một đường dẫn phải được cung cấp, giá trị có thể là một chuỗi rỗng. Trong trường hợp này, giá trị được hiểu là thư mục hiện tại.<?php chdir('/var/www/'); echo realpath('./../../etc/passwd') . PHP_EOL; echo realpath('/tmp/') . PHP_EOL; ?>
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
/etc/passwd /tmp
<?php echo realpath('/windows/system32'), PHP_EOL; echo realpath('C:\Program Files\\'), PHP_EOL; ?>
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
C:\WINDOWS\System32 C:\Program Files
<?php function normalizePath($path) { $parts = array();// Array to build a new path from the good parts $path = str_replace('\\', '/', $path);// Replace backslashes with forwardslashes $path = preg_replace('/\/+/', '/', $path);// Combine multiple slashes into a single slash $segments = explode('/', $path);// Collect path segments $test = '';// Initialize testing variable foreach($segments as $segment) { if($segment != '.') { $test = array_pop($parts); if(is_null($test)) $parts[] = $segment; else if($segment == '..') { if($test == '..') $parts[] = $test; if($test == '..' || $test == '') $parts[] = $segment; } else { $parts[] = $test; $parts[] = $segment; } } } return implode('/', $parts); } ?>
<?php function canonicalize($address) { $address = explode('/', $address); $keys = array_keys($address, '..'); foreach($keys AS $keypos => $key) { array_splice($address, $key - ($keypos * 2 + 1), 2); } $address = implode('/', $address); $address = str_replace('./', '', $address); } $url = 'http://www.example.com/something/../else'; echo canonicalize($url); //http://www.example.com/else ?>
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm realpath() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com
Bình luận: