溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中5個(gè)路徑函數(shù)對(duì)比

發(fā)布時(shí)間:2020-06-16 07:39:04 來源:網(wǎng)絡(luò) 閱讀:417 作者:IT獨(dú)行者 欄目:web開發(fā)

原文地址:http://www.uncletoo.com/html/base/722.html

PHP中5個(gè)路徑函數(shù)對(duì)比

很多同學(xué)對(duì)路徑問題總是分不清,在WEB開發(fā)中經(jīng)常使用混淆,這里UncleToo總結(jié)了一些PHP中經(jīng)常使用的路徑函數(shù)供大家參考,不全的部分大家可以參考PHP手冊(cè)

1、pathinfo

pathinfo返回由給定文件的路徑信息組成的數(shù)組。

示例:

<?php
$s_path='/uncletoo/app/index.php';
$path_parts = pathinfo($s_path);
echo "<pre>";
echo var_dump($path_parts);
echo "</pre>";
?>

輸出:

array(4) {

["dirname"]=>

string(4) "/uncletoo/app"

["basename"]=>

string(9) "index.php"

["extension"]=>

string(3) "php"

["filename"]=>

string(5) "index"

}

從上面示例可以看出,pathinfo函數(shù)返回了index.php文件所在的目錄、文件全稱、文件類型及文件名,這里要注意的是,返回值中的filename是在PHP5.2才加上的,之前的版本沒有。

2、dirname

dirname函數(shù)返回給定路徑的父目錄,字符串類型。

示例:

<?php
echo "1) " . dirname("C:/uncletoo/php") . '<br>';
echo "2) " . dirname("/php/ut.php") . '<br>';
echo "3) " . dirname("/php/") . '<br>';
echo "4) " . dirname("index.php");
?>

輸出:

1) C:/uncletoo

2) /php

3) \

4) .

這里要注意的就是第3和第4兩種情況,這也是dirname函數(shù)容易出錯(cuò)的地方。


3、basename

basename函數(shù)返回給定路徑中的基本文件名,如果只有路徑?jīng)]有文件名,則返回最后的目錄名。

示例:

<?php
echo "1) ".basename("/uncletoo/php/index.d").'<br>';
echo "2) ".basename("/uncletoo/php/index.d", ".d").'<br>';
echo "3) ".basename("/uncletoo/php/").'<br>';
echo "4) ".basename("/uncletoo/").'<br>';
echo "5) ".basename(".").'<br>';
echo "6) ".basename("/");
?>

輸出:

1) index.d

2) index

3) php

4) uncletoo

5) .

6)

從這里可以看出,basename函數(shù)與dirname函數(shù)的取值是互補(bǔ)相反的。

提示:以上三個(gè)函數(shù)不會(huì)驗(yàn)證給定目錄是否存在,只是把路徑當(dāng)做字符串來解析,所以,當(dāng)你給一個(gè)不存在的路徑時(shí),同樣也會(huì)給出正確數(shù)據(jù)。

4、parse_url

parse_url函數(shù)返回含在給定 URL 中出現(xiàn)的各部分組成的數(shù)組。本函數(shù)不會(huì)去驗(yàn)證給定 URL 的合法性的,只是將其視為字符串解析。不完整的 URL 也被接受,對(duì)嚴(yán)重不合格的 URL,parse_url() 可能會(huì)返回 FALSE。

示例:

<?php
$url1 = 'http://www.uncletoo.com/php/path.php?arg=value&id=10#anchor';
$url2 = 'http://username:password@hostname';
echo '<pre>';
echo var_dump(parse_url($url1));
echo '============================<br>';
echo var_dump(parse_url($url2));
echo '</pre>';
?>

輸出:

array(5) {

["scheme"]=>

string(4) "http"

["host"]=>

string(16) "www.uncletoo.com"

["path"]=>

string(13) "/php/path.php"

["query"]=>

string(15) "arg=value&id=10"

["fragment"]=>

string(6) "anchor"

}

================================

array(4) {

["scheme"]=>

string(4) "http"

["host"]=>

string(8) "hostname"

["user"]=>

string(8) "username"

["pass"]=>

string(8) "password"

}

從輸出結(jié)果可以看出,parse_url()函數(shù)會(huì)將不同類型的url正確地解析。

另外,PHP 為了向后兼容的需要有個(gè)例外,對(duì) file:// 協(xié)議允許三個(gè)斜線(file:///...)。其它任何協(xié)議都不能這樣。

5、realpath

realpath函數(shù)是我們?cè)陂_發(fā)過程中經(jīng)常使用到的,PHP官方手冊(cè)給出的解釋是返回規(guī)范的絕對(duì)路徑,我的理解就是返回給定文件所在的物理絕對(duì)路徑。

示例:

<?php
echo var_dump(realpath('app/index.php'));
?>

輸出:

D:\php\apache\htdocs\APP\index.php

(這是我本機(jī)的路徑,不同的存放路徑這里輸出的不一樣)

realpath函數(shù)不同于上面幾種,他是要檢測(cè)文件是否存在,如果不存在,函數(shù)將返回FALSE。

以上5個(gè)路徑函數(shù)是我們?cè)陂_發(fā)中經(jīng)常用到的,UncleToo簡(jiǎn)單整理出來分享給大家,希望能對(duì)大家有所幫助。還有其他一些路徑函數(shù),大家可以參考PHP手冊(cè)。


更多PHP技術(shù),請(qǐng)登錄UncleToo中文網(wǎng)http://www.uncletoo.com

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI