我需要邮寄一些存储在数据库中的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);
两个显示字符串在输出上看起来相同
str_replace
会返回值,它不会改变$display
变量,所以你需要做
$display = str_replace('src="/images', 'src="' . $root .'images', $display);
您发布的另一行将返回根域,以防 joomla 位于子文件夹中,我认为您不需要它