Maison > développement back-end > tutoriel php > 相对路径 转 网络绝对路径(支持二级域名) ./a.jpg => http://www.w.com/a.jpg

相对路径 转 网络绝对路径(支持二级域名) ./a.jpg => http://www.w.com/a.jpg

WBOY
Libérer: 2016-07-25 08:48:58
original
1542 Les gens l'ont consulté
昨天在写用迅雷下载时,发现 ./a.jpg的文件转成迅雷不是网络地址,然后写了一个方法转换。目前处在PHP基础层次,有不足还望请教。
会自动判断当前的域名与主域名,以下是形式:
./a.jpg => http://about.w.com/a.jpg;
../a.jpg => http://www.w.com/a.jpg
  1. /**
  2. * 相对路径转网络绝对路径
  3. * @param string $file
  4. * @return string
  5. */
  6. function dirToHttpUrl($file) {
  7. //判断文件是否存在
  8. if (!file_exists($file)) {
  9. return false;
  10. }
  11. //域名
  12. $nowUrl = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); //当前域名
  13. $tempUrl = explode('.', $_SERVER['HTTP_HOST']);
  14. $dirUrl = 'http://www.'.$tempUrl[1].'.'.$tempUrl[2].'/'; //主域名
  15. //文件路径的层次统计
  16. $tempFile = explode('../', $file);
  17. $tempNum = array_count_values($tempFile);
  18. if (array_key_exists('', $tempNum)) {
  19. $fileNum = $tempNum[''];
  20. $fileEnd = end($tempFile);
  21. } else {
  22. $fileNum = 0;
  23. $fileEnd = '/'.substr($tempFile[0], 2);
  24. }
  25. //域名层次统计
  26. $tempWeb = explode('/', $nowUrl);
  27. $tempWeb = array_slice($tempWeb, 3);
  28. $webNum = count($tempWeb);
  29. //文件对应的域名
  30. if ($fileNum > $webNum) {
  31. $nowUrl = $dirUrl;
  32. }
  33. //返回
  34. return $nowUrl.$fileEnd;
  35. }
  36. //dirToHttpUrl('./1.jpg');
复制代码


source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal