네트워크 절대 경로에 대한 상대 경로(2차 도메인 이름 지원) ./a.jpg => http://www.w.com/a.jpg
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-25 08:48:58
昨天在写用迅雷下载时,发现 ./a.jpg的文件转成迅雷不是网络地址,然后写了一个方法转换。目前处在PHP基础层次,有不足还望请教。 会自动判断当前的域名与主域名,以下是形式: ./a.jpg => http://about.w.com/a.jpg; ../a.jpg => http://www.w.com/a.jpg
- /**
- * 相对路径转网络绝对路径
- * @param string $file
- * @return string
- */
- function dirToHttpUrl($file) {
-
- //判断文件是否存在
- if (!file_exists($file)) {
- return false;
- }
-
- //域名
- $nowUrl = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); //当前域名
- $tempUrl = explode('.', $_SERVER['HTTP_HOST']);
- $dirUrl = 'http://www.'.$tempUrl[1].'.'.$tempUrl[2].'/'; //主域名
-
- //文件路径的层次统计
- $tempFile = explode('../', $file);
- $tempNum = array_count_values($tempFile);
-
- if (array_key_exists('', $tempNum)) {
- $fileNum = $tempNum[''];
- $fileEnd = end($tempFile);
- } else {
- $fileNum = 0;
- $fileEnd = '/'.substr($tempFile[0], 2);
- }
-
- //域名层次统计
- $tempWeb = explode('/', $nowUrl);
- $tempWeb = array_slice($tempWeb, 3);
- $webNum = count($tempWeb);
-
- //文件对应的域名
- if ($fileNum > $webNum) {
- $nowUrl = $dirUrl;
- }
-
- //返回
- return $nowUrl.$fileEnd;
-
- }
-
- //dirToHttpUrl('./1.jpg');
-
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
최신 이슈
-
2025-03-18 17:12:12
-
2025-03-14 11:44:41
-
2025-03-14 11:42:06
-
2025-03-14 11:06:10
-
2025-03-13 12:08:12