1

我是一名 jsp 程序员,自己做了一些功课来学习 php ;) 所以我的问题是在 php 文档中包含文件。这里要解释的是代码。

索引.php

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home</title>
</head>
<body>
<?php include("/php/lib/banner.php"); ?>
</body>
</html>

横幅.php

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Banner</title>
</head>
<body>
<table width="100%">
<tr>
<td>
<img src="../../images/banner.jpg" width="100%" /></td>
</tr>
</table>
</body>
</html>

文件位置:

main\index.php  
main\php\lib\banner.php  
main\images\banner.jpg  

我得到的错误是索引页面中没有显示图像,但是当我直接访问banner.php时它可以工作

请建议。

问候 Sworoop Mahapatra

4

6 回答 6

2

包含字面意思是将一个文件的内容放入另一个文件中,因此您希望路径是您将在 index.php (images/banner.jpg) 中使用的路径

于 2012-11-01T04:32:09.803 回答
1

当您使用 include 函数包含一个 php 文件时,解析器实际上从“banner.php”中获取内容并插入到它被调用的位置。

现在图像源虽然您引用了banner.php的目录,但在include使用时应该使用正确的指针引用index.php的目录(调用它的文件的目录)

在您的情况下,它是从两个目录请求图像UP图像不存在的主目录!

工作使用:

<img src="images/banner.jpg" width="100%" />

于 2012-11-01T04:39:24.107 回答
0
This should work:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Banner</title>
</head>
<body>
<table width="100%">
<tr>
<td>
<img src="images/banner.jpg" width="100%" /></td>
</tr>
</table>
</body>
</html>
于 2012-11-01T04:33:12.270 回答
0

当您加载 index.php 时,banner.php 的位置从...开始

main\

当您单独加载banner.php时,位置是......

main\php\lib\

您不能真正拥有一个同时适用于两者的 URL。您需要单独加载横幅吗?如果您只需要横幅在您的 index.php 中工作,那么将该行更改为...

<img src="images/banner.jpg" width="100%" /></td>

它会在 index.php 中运行,但在加载banner.php 时不会。

要让它同时工作,您需要将它们复制到同一个文件夹,或者至少稍微修改一下文件夹的结构。

编辑:如果你能告诉我这个横幅需要放在其他文件的位置,只需列出,我会尝试看看它是如何排序的。

于 2012-11-01T04:39:07.410 回答
0

只需将代码留在banner.php 文件的body 元素中即可。PHP 将按字面意思获取文件的内容并将其插入到包含函数所在的位置。在当前的代码形式中,您将在页面的 body 元素中添加一个 html 元素,这是完全错误的,可能会导致浏览器出现意外行为。

此外,路径必须相对于您在浏览器中实际访问的 URL,而不是相对于 HTML 代码来自的文件。

像这样的布局将起作用:

索引.php

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home</title>
</head>
<body>
<?php include("php/lib/banner.php"); ?>
</body>
</html>

横幅.php

<table width="100%">
<tr>
<td>
<img src="images/banner.jpg" width="100%" /></td>
</tr>
</table>

相同的文件位置:

main\index.php  
main\php\lib\banner.php  
main\images\banner.jpg

请记住,包含将获取一个 PHP 文件,对其进行处理并逐字包含其结果。

于 2012-11-01T04:43:13.950 回答
0

另一种解决方案是拥有图像的完整路径。

例如:

<img src="http://yoururl/image_path"/>
于 2012-11-01T05:02:14.027 回答