李找不到图像

时间:2011-12-04 02:14:05

标签: php html

我有一个带有li的ul,在这里的代码中找不到与列表项'li'关联的.PNG图像:

$pngFilename= 'C:/xampp/htdocs/myProj/' . 'just_a.png';
echo 'pngFilename is "', $pngFilename, '" -- that was the .png image filename.';


// within a 'ul' is this li item that displays an image (the ul code is simplified 
// to only show the item that (needs to but doesn't!) display a .PNG image.)
echo '<ul>';
echo '<li>';
echo '<a href="http://localhost/myProj/just_an.htm">';
echo '<img src="', $pngFilename, '"';            
echo 'alt="http://localhost/myProj/the_other.png"';

// NOTE -- I left out the close /> to the img statement when I copied my code here but 
// it was in fact in my source code.
echo '/>'; 

echo '</a>';
echo '</li>';
echo '</ul>';

在我编写上面的PHP代码之前,我只测试了原始的html,它很好 - 我的.PNG文件名为 C:/xampp/htdocs/myProj/just_a.png显示正确。

但是当我切换到php服务器端生成的html时,C:/xampp / htdocs / myProj / just_a.png图像没有出现,只有“无法找到它”的默认小图像看起来像一个一张纸水平撕裂。

有什么想法吗? .png文件存在,目录和html也正确显示图像,但是当我将html放入php'echo'调用时,我必须搞砸了一些东西,只是不确定是什么。

为了确保我有正确的路径和文件名,你会看到我在代码的顶部回显它 当我在浏览器中“查看源代码”时显示php变量$ pngFilename:

pngFilename is "C:/xampp/htdocs/myProj/just_a.png"  -- that was the .png image filename.

唯一需要提及的是'alt'链接,'alt =“http://localhost/myProj/the_other.png”' - 此链接(不是图片)显示为带蓝色下划线的链接文字

为什么这在我的html中工作但在我在php中使用'echo'时会中断?毕竟,'echo'只是将html发送到客户端 - 而且.png文件肯定是100%并且当我在php的“echo”命令之外运行上面的html时显示正常。

3 个答案:

答案 0 :(得分:3)

这是因为图像的路径会根据您查看页面的方式而改变。在本地环境中或从服务器上下文;由于您使用的是绝对路径而不是相对路径,因此系统无法根据图像位置的变化进行调整。与使用PHP函数调用使用内部文件系统的php文件系统函数不同。你做了什么让它发送一个文本文件到浏览器,直到PHP完成后才会呈现为HTML代码。因为它无法访问php文件系统来解析服务器上图像的路径。修复它的方法是使用图像的路径相对于PHP脚本或使用Web访问图像的路径

$pngFilename= 'C:/xampp/htdocs/myProj/' . 'just_a.png';

例如应该是

$pngFilename= 'http://localhost/myProj/' . 'just_a.png';

或者如果图像和php文件位于同一个目录中,那么

$pngFilename= 'just_a.png';

答案 1 :(得分:2)

您应该尝试关闭img标记:

echo '<img src="', $pngFilename, '"';
echo 'alt="http://localhost/myProj/the_other.png">';

答案 2 :(得分:1)

您正在生成以下图片代码:

<img src="C:/xampp/htdocs/myProj/just_a.png" alt="http://localhost/myProj/the_other.png" />

您无法使用此路径,您需要将其更改为http://localhost/myProj/just_a.pngfile:///C:/xampp/htdocs/myProj/just_a.png之类的内容。