2009-09-30 28 views
0

我正在开发一个基于某些元素自动显示图像的PHP脚本(这对于问题而言并不重要,因为该部分工作得很好。)在浏览器之外,我已经过测试,图像在Google Chrome,Internet Explorer和Safari上正确显示。但是,它们不会出现在Firefox或Opera上。在Firefox中,不显示任何内容,而在Opera中,映像的路径为http://server/folder/%5Cimages%5C40.jpg,它应该是http://server/folder/images/40.jpg。用于生成URL的代码如下:从字符串和变量中生成URL

echo "<div class='jumih3'>" . $row['fname'] . " " . $row['lname'] . "</div>"; 
$image = JURI::root() . "\/images\/" . $row['id'] . ".jpg"; 
$imagetest = JPATH_ROOT . "\/images\/" . $row['id'] . ".jpg"; 
if (file_exists($imagetest)) 
{ 
echo "<br /><img src='" . $image . "'width='100' height='100' /><br />"; 
} 

这是一个Joomla站点和JURI的一部分:根()和JPATH_ROOT提供服务器的绝对位置。 Opera解析URL的方式我怀疑有些东西是错误的,因为我正在逃避斜线。但是,当我尝试使用/而不是/图像没有出现在任何浏览器中。

编辑:正如你从Zannjaminderson的回答中看到的,问题的解决方式是facepalm。

+0

%5C是'\'字符的URL编码值。你在哪个平台上运行? Windows还是Linux? –

+0

我现在在Windows上运行,但也希望该网站在Linux上工作。 –

回答

0

如果你喜欢,给我打电话,但我注意到你正在测试file_exists($ imagetest),然后使用$ image作为图像的源代码......你不应该使用你测试过的/测试你正在使用的那个?

+0

Greg正在测试本地文件系统以查看文件是否存在,然后传递公共URI。 –

+0

从我的理解来看,JURI:ROOT()提供了根URI,JPATH_ROOT提供了应用程序的根地址,这就是为什么我这样设置的原因。 –

+0

但是,我会更好地解释我的思维过程。 ;) –

0

你不需要跳过斜杠。当你使用/它为每个图像产生了什么样的地址?什么平台?

+0

它生产http://server/folder/%5Cimages%5C40.jpg并通过使用/我设法解决这个问题。 –