PHP 是否有一个本机函数可以返回使用相对路径声明的文件的完整 URL?我需要得到:"http://www.domain.com/projects/test/img/share.jpg"
from "img/share.jpg"
到目前为止,我已经尝试过以下操作:
realpath('img/share.jpg');
// Returns "/home/user/www.domain.com/projects/test/img/share.jpg"
我也尝试过:
dirname(__FILE__)
// Returns "/home/user/www.domain.com/projects/test"
And 这个答案 https://stackoverflow.com/questions/6768793/get-the-full-url-in-php声明以下内容可以被客户端篡改:
"http://'.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI].'img/share.jpg"
另外,我的路径会根据我是否从以下位置访问而有所不同/test/index.php
要不就test/
没有index.php,我不想硬编码它是http还是https。
有人有解决方案吗?我将把这些文件发送给另一个将上传到他们的服务器的人,因此文件夹结构将不匹配"/home/user/www.domain.com/"
echo preg_replace(preg_quote($_SERVER['DOCUMENT_ROOT']), 'http://www.example.com/', realpath('img/share.jpg'), 1);
Docs: preg_replace http://php.net/manual/en/function.preg-replace.php and preg_quote http://php.net/manual/en/function.preg-quote.php.
的论点preg_replace
:
-
preg_quote($_SERVER['DOCUMENT_ROOT'])
- 获取文档根(例如,/home/user/www.domain.com/
) 并将其作为正则表达式用于preg_replace
.
-
'http://www.example.com/'
- 用于替换正则表达式匹配的字符串。
-
realpath('img/share.jpg')
- 文件路径的字符串,包括文档根目录。
-
1
- 替换正则表达式匹配的次数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)