如何将绝对文件路径转换为一个CSS可以使用?

时间:2011-10-18 17:14:34

标签: php css wordpress filepath glob

我正在尝试在WordPress网站上显示随机选择的背景图片。我的策略是内联style元素的<html>属性,如下所示:

<html style="background:#e8e6da url(<?php
$bg_imgs = glob(get_template_directory().'/backgrounds/*.jpg');
shuffle($bg_imgs);
echo $bg_imgs[0]; ?>) left top fixed">

在我的本地服务器上,输出

<html style="background:#e8e6da url(C:\xampp\htdocs\mysite/wp-content/themes/my_theme/backgrounds/paper2.jpg) left top fixed">

...浏览器不喜欢它,因为它要求获取本地资源。即使一旦网站上线,这不会是一个问题,我只需要一个相对路径到图像文件。

所以我准备使用substr()来删除路径中不需要的部分,但我不能确定,取决于部署站点的位置,get_template_directory()将返回什么。我不想对可能有所不同的任何内容进行硬编码。

返回相对于网站网址的随机图片路径的最佳策略是什么?如果有更好的东西,我很乐意抛弃上述情况。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以尝试获取文档根目录并将其从完整路径的开头删除:

$docRoot_len = strlen($_SERVER['DOCUMENT_ROOT']);
$bg_imgs = glob(get_template_directory().'/backgrounds/*.jpg');
shuffle($bg_imgs);
echo substr($bg_imgs[0], $docRoot_len);

我知道这不是万无一失的 - 这只是一个想法。