Có hàm PHP tương đương với Python os.path.normpath()
không?
Hoặc làm cách nào tôi có thể nhận được chính xác cùng một chức năng trong PHP?Có hàm PHP tương đương với Python os.path.normpath() không?
6
A
Trả lời
6
Đây là của tôi 1: 1 viết lại của normpath() phương pháp từ posixpath.py Python trong PHP:
function normpath($path)
{
if (empty($path))
return '.';
if (strpos($path, '/') === 0)
$initial_slashes = true;
else
$initial_slashes = false;
if (
($initial_slashes) &&
(strpos($path, '//') === 0) &&
(strpos($path, '///') === false)
)
$initial_slashes = 2;
$initial_slashes = (int) $initial_slashes;
$comps = explode('/', $path);
$new_comps = array();
foreach ($comps as $comp)
{
if (in_array($comp, array('', '.')))
continue;
if (
($comp != '..') ||
(!$initial_slashes && !$new_comps) ||
($new_comps && (end($new_comps) == '..'))
)
array_push($new_comps, $comp);
elseif ($new_comps)
array_pop($new_comps);
}
$comps = $new_comps;
$path = implode('/', $comps);
if ($initial_slashes)
$path = str_repeat('/', $initial_slashes) . $path;
if ($path)
return $path;
else
return '.';
}
này sẽ làm việc một cách chính xác giống như os.path.normpath() trong Python
2
Có, lệnh realpath
sẽ trả lại đường dẫn chuẩn hóa. Nó tương tự như phiên bản kết hợp của os.path.normpath
và os.path.realpath
của Python.
Tuy nhiên, nó cũng sẽ giải quyết các liên kết tượng trưng. Tôi không chắc bạn sẽ làm gì nếu bạn không muốn hành vi đó.
Các vấn đề liên quan
- 1. Danh sách PHP() tương đương với Python
- 2. PHP tương đương với Python __name__ == "__main__"?
- 3. Python tương đương với memory_get_usage() của PHP?
- 4. Python có tương đương với 'chuyển' không?
- 5. Có Python tương đương với HighLine không?
- 6. Có tương đương Python của hàm conv2 của MATLAB không?
- 7. PHP - Tương đương với Python PDB (Debugger) trong PHP?
- 8. Ruby tương đương với hàm ucfirst() của PHP
- 9. JSP tương đương với hàm PHP bao gồm()?
- 10. Python tương đương với PHP() và trích xuất()
- 11. Tương đương với PHP "echo something; exit();" với Python/Django?
- 12. Tương đương với hàm lambda của Python trong Java?
- 13. Python tương đương với hàm "ismember" của MATLAB
- 14. Ruby Sequel có tương đương với hàm SQL "coalesce" không?
- 15. Có tương đương với hash_hmac của PHP trong Python/Django không?
- 16. python tương đương tương đương
- 17. Tương đương TreeSet của Java tương đương với Python?
- 18. Có bất kỳ Java tương đương với hàm http_build_query của PHP không?
- 19. Có tương đương C# với mảng array_key_exists của PHP không?
- 20. PHP có tương đương với #ifdef của C/C++ không?
- 21. Có tương đương PHP với La bàn không?
- 22. Có một Coldfusion tương đương với PHP cho include_once không?
- 23. Có Ruby tương đương với trích xuất của PHP không?
- 24. Python tương đương với PHP __call() phương pháp ma thuật?
- 25. JavaScript tương đương với PHP preg_replace
- 26. Perl tương đương với escapeshellarg của PHP
- 27. PHP tương đương với PyQuery hoặc Nokogiri?
- 28. PHP tương đương với biểu tượng Ruby
- 29. Perl tương đương với preg_callback của PHP
- 30. Có tương đương với hàm phạm vi Python trong MATLAB không?
Đường dẫn thực của PHP sẽ giống như đường dẫn os.path.abspath() hoặc os.path.realpath() – VolkerK
@Gordon: Đường dẫn thực của PHP giống như một phiên bản kết hợp của os.path.normpath và os.path của Python. realpath. – Powerlord
Tôi nghĩ rằng đây là gần nhất bạn có thể truy cập vào chức năng 'os.path.normpath()'. Hoặc là điều này hoặc không có (ít nhất) được xây dựng trong chức năng cho việc này. Nó phụ thuộc vào những gì OP thực sự cần ... –