ホームページ > バックエンド開発 > PHPチュートリアル > ネットワーク絶対パスへの相対パス (第 2 レベルのドメイン名をサポート) ./a.jpg => http://www.w.com/a.jpg

ネットワーク絶対パスへの相対パス (第 2 レベルのドメイン名をサポート) ./a.jpg => http://www.w.com/a.jpg

WBOY
リリース: 2016-07-25 08:48:58
オリジナル
1561 人が閲覧しました
昨日、Thunderを使ってダウンロードする方法を書いたところ、Thunderに変換した./a.jpgファイルがネットワークアドレスではないことが判明したので、変換する方法を書きました。私は現在PHPの基礎レベルに達しているので、不足している点があれば助けていただきたいと思っています。
現在のドメイン名とメインのドメイン名は次の形式になります:
./a.jpg => http://about.w.com/a.jpg = > http://www.w.com/a.jpg
    /**
  1. * 相対パスをネットワーク絶対パスに変換します
  2. * @param string $file
  3. * @return string
  4. */
  5. function dirToHttpUrl($file) {
  6. //ファイルが存在するかどうかを判定
  7. if (!file_exists($file)) {
  8. return false;
  9. }
  10. //ドメイン名
  11. $nowUrl = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); //現在のドメイン名
  12. $tempUrl =explode('.', $_SERVER[ 'HTTP_HOST' ]);
  13. $dirUrl = 'http://www.'.$tempUrl[1].'.'.$tempUrl[2].'/' //メインドメイン名
  14. //レベル統計ファイルパスの数
  15. $tempFile =explode('../', $file);
  16. $tempNum = array_count_values($tempFile);
  17. if (array_key_exists('', $tempNum)) {
  18. $fileNum = $tempNum[ ''];
  19. $fileEnd = end($tempFile);
  20. } else {
  21. $fileNum = 0;
  22. $fileEnd = '/'.substr($tempFile[0], 2);
  23. }
  24. //ドメイン名前レベル統計
  25. $ tempWeb =explode('/', $nowUrl);
  26. $tempWeb = array_slice($tempWeb, 3);
  27. $webNum = count($tempWeb);
  28. //ファイルに対応するドメイン名
  29. if ($fileNum > $ webNum) {
  30. $nowUrl = $dirUrl;
  31. }
  32. //Return
  33. return $nowUrl.$fileEnd;
  34. }
  35. //dirToHttpUrl('./1.jpg');
コードをコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート