将服务器文件路径转换为Codeigniter中的URL

时间:2011-07-28 22:19:24

标签: url codeigniter path

我正在使用Codeigniter 2.0.2开发我的第一个应用程序,我有一个小问题,我似乎无法在网上找到任何信息。

应用程序围绕需要向用户公开的服务器上本地存储的资源(即图像和音频文件)。这些资源的位置作为绝对路径存储在DB中。因此,我发现自己需要经常将服务器路径转换为基于base_url的URL。

我已经编写了一个简单且功能强大的功能来处理它,但是对于CI(url,path)中所有看似相关的助手,我无法摆脱我刚刚重新发明轮子的感觉。 / p>

至少,我认为会有某种CI功能(比如“basify”)将任何服务器路径转换为base_url相对路径,如下所示:

$server_path = '/server/path/to/app/resources/image.jpg';
basify( $server_path );  // returns 'resources/image.jpg' or './resources/image.jpg'

CI应用程序位于/ server / path / to / app中。然后,这是一个简单的调用base_url()来创建URL。

有这样的事吗?

编辑:是的,我知道一个简单的preg_replace将为我处理大多数情况(至少那些资源在基本路径中),但我觉得这应该是CI的工作,而不是我的工作!我使用它的一半原因是因为我不想考虑路径管理。

1 个答案:

答案 0 :(得分:0)

也许你可以使用php函数str_replace和codeigniter FCPATH常量 您的代码将是:

function basify($image_path) {
    return str_replace(FCPATH, '', $image_path);
}

FCPATH常数对我来说是新的,但我做了一些测试,它运行正常。