0

我需要邮寄一些存储在数据库中的 html 代码。

对于要显示的图像,我需要用绝对路径替换相对路径。

我有一个名为 $display 的变量,它保存 HTML。

为此,我尝试休耕:

$root=JURI::root();
 str_replace('src="/images', 'src="' . $root .'images', $display); 

var_dump($display);//for testing

$display 似乎根本没有改变。

更新 1

我被建议将代码更改为:

$root=JURI::root();
$display = str_replace('src="/images', 'src="' . $root .'images', $display)

我也试过

$display = str_replace('src="/images', 'src="' . $root .'images', $display);

但是 - 两者都没有工作:[

它改变了

src="/images/joomla_black.gif"

src="http://images/joomla_black.gif"

没有完整的网址:[

有什么建议吗?

更新 2

添加了这个:

echo('non fixed:');
var_dump($display);

$root=JURI::root();
$display = str_replace('src="/images', 'src="' . $root .'images', $display);
//fix images in display to absolute paths for mailing


echo('fixed:');
var_dump($display);

两个显示字符串在输出上看起来相同

4

1 回答 1

0

str_replace将返回值,它不会改变$display变量,所以你需要做

$display = str_replace('src="/images', 'src="' . $root .'images', $display);

如果 joomla 位于子文件夹中,您发布的另一行将返回根域,我认为您不需要

于 2013-02-23T10:51:48.383 回答