【问题标题】:Displaying an image using a php variable使用 php 变量显示图像
【发布时间】:2013-10-24 10:39:36
【问题描述】:

我正在尝试通过从 sql 表中获取图像的文件路径来显示图像,但我遇到了很多麻烦。

这是怎么回事:

$image 是一个包含文本"itemimg/hyuna.png" 的变量,它是图像的路径。

$image = 'itemimg/hyuna.png';

我认为我可以像这样在 php 块之外显示图像:

<img src= "<? $image ?>" alt="test"/>

由于某种原因,这不起作用。

所以我认为它可能无法读取 php 块之外的变量(我是初学者),所以为了测试我做了:

<h1> "<? $image ?>" </h1>

它将itemimg/hyuna.png 显示为 h1 横幅。

意味着它正在访问变量fine。

所以我想也许路径是错误的。所以我尝试了:

<img src= "itemimg/hyuna.png" alt="test"/>

这样可以完美地显示图像。

所以现在我一直在摸不着头脑,为什么第一段代码只显示来自"alt=" 的文本"test"

补充问题: 如何将 sql 单元中的值分配给变量? 我没有运气尝试了以下操作:

$q = "select * from item where id=$id";
$results = mysql_query($q);
$row = mysql_fetch_array($results, MYSQL_ASSOC);
$image = ".$row['image'].";

item 是一个带有列的表格:image,其中包含图像的文件路径

【问题讨论】:

  • PHP 短标签可能未启用。即使您仍然错误地使用它们。如果要回显,请使用&lt;?=
  • “如果你很高兴并且知道语法错误” echo 短标签是&lt;?=,而不是&lt;?。后者也需要启用,即使启用,您也不应该使用它们,因为它们与 xml 标记 (&lt;?xml) 冲突,并且会降低您的代码的可移植性。因为你没有使用正确的标签,php 也会抱怨缺少分号。即使你解决了这个问题:$someVar; 是一个有效的声明,什么都不做
  • 天哪。所以基本上我只需要添加'='来解决我的整个问题?非常感谢你们的帮助!

标签: php html image variables filepath


【解决方案1】:

首先,您不应该使用 PHP Shorttags。

当您使用 PHP Shorttags 时,您必须说:

<img src="<?=$image ?>" alt="test" />

但我会鼓励像这样从变量中转义内容:

<img src="<?php echo htmlspecialchars($image); ?>" alt="test" />

你的额外问题:

这应该会导致语法错误,因为无法解析字符串,只需使用$image = $row['image'];

【讨论】:

  • 短回声标签&lt;?=没有任何问题。它始终处于启用状态。 htmlspecialchars 是个好点,虽然有点多...我建议只做str_replace('"','',$image)
  • 完美运行。与第一个示例相比,使用第二个示例有什么好处?
  • 如果您的字符串中有例如双引号 ("),而您只是回显变量的内容,则双引号将破坏 html 属性标记(未正确关闭)并使 html 无效。
【解决方案2】:

试试这个

&lt;img src= "&lt;?php echo $image ?&gt;" alt="test"/&gt;

【讨论】:

    【解决方案3】:

    试试

    <img src= "<?= $image ?>" alt="test"/>
    

    <img src= "<? echo $image; ?>" alt="test"/>
    

    【讨论】:

      【解决方案4】:

      试试这个

      <img src= "<?php echo $image ?>" alt="test"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多