파일 경로를 처리하는 상황이 자주 발생합니다.
예:
1. 파일 접미사를 제거해야 합니다.
2. 경로에서 이름을 제거해야 하지만 디렉터리는 제외해야 합니다
3. 경로명에 디렉터리 경로만 빼내세요
4. 아니면 URL의 각 부분을 파싱해서 독립적인 값을 얻습니다
5. 아니면 심지어 url을 직접
... .. ..
경로 처리 클래스 기능은 여러 곳에서 필요합니다.
모든 사람이 일반적으로 사용하는 경로 처리 기능을 표시했습니다.
函数名 | 功能 |
---|---|
pathinfo | 返回文件的各个组成部份 |
basename | 返回文件名 |
dirname | 文件目录部份 |
parse_url | 网址拆解成各部份 |
http_build_query | 生成url 中的query字符串 |
http_build_url | 生成一个url |
pathinfo
array pathinfo ( string $路径) 功能:传入文件路径返回文件的各个组成部份
구체적인 예를 들어보겠습니다.
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目录名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件扩展名:'.$path_parts['extension']."<br />"; echo '不包含扩展的文件名:'.$path_parts['filename']."<br />"; ?>
결과는 다음과 같습니다.
文件目录名:d:/www 文件全名:lib.inc.php 文件扩展名:php 不包含扩展的文件名:lib.inc
basename
string basename ( string $路径[, string $suffix ]) 功能:传入路径返回文件名 第一个参数传入路径。 第二个参数,指定我文件名到了指定字符停止。
<?php echo "1: ".basename("d:/www/index.d", ".d").PHP_EOL; echo "2: ".basename("d:/www/index.php").PHP_EOL; echo "3: ".basename("d:/www/passwd").PHP_EOL; ?>
실행 결과는 다음과 같습니다
1: index 2: index.php 3: passwd
dirname
dirname(string $路径) 功能:返回文件路径的文件目录部份
<?php dirname(__FILE__); ?>
결론: 실행하면 파일의 디렉터리 부분이 반환되는지 확인할 수 있습니다.
parse_url
mixed parse_url ( string $路径 ) 功能:将网址拆解成各个部份
<?php $url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); ?>
결과는 다음과 같습니다.
array(8) { ["scheme"]=> string(4) "http" ["host"]=> string(8) "hostname" ["port"]=> int(9090) ["user"]=> string(8) "username" ["pass"]=> string(8) "password" ["path"]=> string(5) "/path" ["query"]=> string(9) "arg=value" ["fragment"]=> string(6) "anchor" }
http_build_query
string http_build_query ( mixed $需要处理的数据) 功能:生成url 中的query字符串
<?php //定义一个关联数组 $data = [ 'username'=>'php', 'area'=>'hubei' ]; //生成query内容 echo http_build_query($data); ?>
결과는 다음과 같습니다.
username=php&area=hubei
http_build_url()
기능: URL 생성
참고 :
PHP_EOL 상수
Windows 플랫폼의 echo "rn"과 동일;
unixlinux 플랫폼의 echo "n"과 동일;
Mac 플랫폼의 echo "r"과 동일;