Yesterday, when I was writing about using Thunder to download, I found that the ./a.jpg file converted to Thunder was not the network address, so I wrote a method to convert it. I am currently at the basic level of PHP, so I would like to ask for help if I have any deficiencies. It will automatically determine the current domain name and main domain name. The following is the form: ./a.jpg => http://about.w.com/a.jpg; ../a.jpg => http:// www.w.com/a.jpg
- /**
- * Convert relative path to network absolute path
- * @param string $file
- * @return string
- */
- function dirToHttpUrl($file) {
-
- //Determine whether the file exists
- if (!file_exists($file)) {
- return false;
- }
-
- //Domain name
- $nowUrl = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); //Current domain name
- $tempUrl = explode('.', $_SERVER['HTTP_HOST' ]);
- $dirUrl = 'http://www.'.$tempUrl[1].'.'.$tempUrl[2].'/'; //Main domain name
-
- //Level statistics of file paths
- $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);
- }
-
- //Domain name level statistics
- $ tempWeb = explode('/', $nowUrl);
- $tempWeb = array_slice($tempWeb, 3);
- $webNum = count($tempWeb);
-
- //Domain name corresponding to the file
- if ($fileNum > $ webNum) {
- $nowUrl = $dirUrl;
- }
-
- //Return
- return $nowUrl.$fileEnd;
-
- }
-
- //dirToHttpUrl('./1.jpg');
-
Copy code
|