从不包含在服务器根目录中的包含的 php 加载图像


Load an image from included php not in root directory of server

我被困在一个简单的事情上,比如在php中加载图像。所有包含的 php 文件都在一个名为 include 的目录中。索引.php位于根文件夹中。当我从位于根文件夹中的 php 文件调用 img src 时,我可以看到图像。但是当我包含一个应该加载这样的图像的部分时:

<?php include("includes/section.php"); ?>

称呼这个:

<div class = "right">
<h1> news </h1>
<hr>
echo '<img src="../img/do.png" width="200"  alt="Rifrazione news/>';
<p class = "rightp">Blabla </p><br
</div><!--end of right-->

我一无所获

对于我预设的图像使用全局变量。

尝试执行以下操作:

<?
$baseUrl = "http://localhost";   // CHANGE IT TO YOUR URL
?>    
<div class = "right">
<h1> news </h1>
<hr>
<? 
echo '<img src="'.$baseUrl.'/img/do.png" width="200"  alt="Rifrazione news" />'; 
?>
<p class = "rightp">Blabla </p><br />
</div><!--end of right-->

您当前所在的文件是您当前的工作目录。因此,从索引所在的目录中找到图像的位置.php这意味着可能会删除../。如果您有任何疑问echo getcwd();.

永远不要按照亚当的建议去做。应始终使用文件系统路径,切勿使用本地文件的 url 路径。编辑推理:热链接是其中的一部分,因为他可能不知道为什么某些东西不起作用,因为它在其他位置工作,但主要是由于路由/.htaccess/url重写。如果他稍后转向MVC或类似的框架,放置本地主机/控制器/操作将不会返回他的图像,但他可能不确定为什么,因为这是一个他已经养成的坏习惯。另一个原因是为了便于使用,如果他放置一个像 ./image/here.jpg 而不是 localhost*/here 这样的路径.jpg如果他稍后要迁移到外部服务器,他可能必须遍历并重写每个链接。

有助于更好地可视化的示例:如果您有以下目录:

my_site/
    js/
    css/
    images/
        image.jpg
    index.php
    bob/
        bob.php
        contactBob.php

如果您正在查看 index.php,则指向图像的链接将/images/image.jpg 。如果您正在查看联系人Bob.php则指向图像的链接将../images/image.jpg

在HTML5中,您可以将<base>声明为DOM元素。

经过搜索和测试...都不是这些。唯一缺少的是括号开头的 php 标签。

你根本不需要变量。此语法按预期工作。

<?php
echo '<img src="img/do.png" width="120"  alt="Rifrazione news"/>';
?>

无论如何,感谢您的加入。