繁体   English   中英

PHP-从存储在其他文件夹中的文件路径获取文件的URL

[英]PHP - Get URL of a file from its path stored in different folder

我在YII框架中有一个项目,希望将静态内容共享到其他站点。 假设我有一个文件夹common在那里我存储的所有图像和文件在本地主机,即var/www/html文件夹。 现在,我在本地主机中还有另外两个文件夹,即site1site2 现在,我要在site1site2中都使用common文件夹的静态内容。 我无法生成图像文件的绝对URL。 我正在使用下面的功能从文件路径获取URL,它不适用于当前场景。 非常感谢您的帮助。

function FilePath2URL($file, $Protocol='http://', $addHost= false) { $host = $addHost ? $Protocol."".$_SERVER['HTTP_HOST']: ""; if(strtoupper(substr(PHP_OS,0,3))==='WIN'){ $file_p=str_replace('\\\\','/',$file); $file_p=str_replace($_SERVER['DOCUMENT_ROOT'],'',$file_p); $url= self::websiteDomain().DS.$file_p; } else { $url = $host.str_replace($_SERVER['DOCUMENT_ROOT'], '', $file); } return file_exists($file)?$url."?".filemtime($file):$url; }

谢谢!

通常,您不能拥有指向站点根目录外部文件夹的URL。 如果您的服务器在Linux上运行,则应定义一个符号链接(ln命令),该符号链接指向位于site1和site2文件夹中的公用文件夹,例如:

ln -s /var/html/common /var/html/site1/common
ln -s /var/html/common /var/html/site2/common

这样就可以通过网站的虚拟“公共”子文件夹看到真正的“公共”文件夹。 这样做,您可能需要管理权限,以允许站点程序读取站点根目录外部的真实“公用”文件夹(使用Apache,调整SELinux权限[如果SELinux处于活动状态]和php open_basedir限制,如果您的站点正在运行php)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM