ネットワーク絶対パスへの相対パス (第 2 レベルのドメイン名をサポート) ./a.jpg => http://www.w.com/a.jpg
リリース: 2016-07-25 08:48:58
昨日、Thunderを使ってダウンロードする方法を書いたところ、Thunderに変換した./a.jpgファイルがネットワークアドレスではないことが判明したので、変換する方法を書きました。私は現在PHPの基礎レベルに達しているので、不足している点があれば助けていただきたいと思っています。 現在のドメイン名とメインのドメイン名は次の形式になります: ./a.jpg => http://about.w.com/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
- return $nowUrl.$fileEnd;
-
- }
-
- //dirToHttpUrl('./1.jpg');
-
-
コードをコピー
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31