【问题标题】:Slashes are not being displayed不显示斜线
【发布时间】:2013-10-17 00:58:22
【问题描述】:

这是我的代码:

<?php
      $lname = "templates/generator";
      $link = "<img src=\"{$lname}/data/num_{$row}.png\" alt=\"{$row}\"/>";
      echo $link;
?>

它确实返回了这个。而不是图像,在 Firebug 中我可以阅读以下内容:

<img src=" templates generator data num_1.png" alt="1">

所以基本上 它正在用空格替换斜杠。 这段代码的问题在哪里?

【问题讨论】:

  • header('Content-Type: text/plain'); 添加到脚本顶部。然后再试一次。
  • @DrixsonOseña:不,你不需要。以上应该产生类似于&lt;img src="templates/generator/data/num_BAR.png" alt="BAR"/&gt;的输出。
  • @AmalMurali 已经有了。
  • \ 用于转义您的 " 所以永远不会被看到(php 在内部将它们剥离)。那时不使用会更容易,只需在字符串外部使用单引号 $link = '&lt;img src="{$lname}/data/num_{$row}.png" alt="{$row}"/&gt;';
  • 不要用 Firebug 阅读这个 - 只需 ctrl+u 并查看源代码本身 - Firebug 可能有它自己的问题。

标签: php string php-5.4


【解决方案1】:

一个更好的主意是停止使用你的报价。只需sprintf() 用于输出 HTML:

$link = sprintf('<img src="%s/data/num_%s.png" alt="%s"/>', $lname, $row, $row);

此外,在查看源代码时,请使用浏览器的查看源代码功能,而不是 Firebug。正如 Ben 在 cmets 中所说,它可能有自己的问题。

为了确保您没有误读信息,您可以使用巧妙的header() 小技巧:

header('Content-Type: text/plain');

PHP 默认使用 Content-Type text/html。将此添加到脚本的顶部,它将显示没有任何格式的 HTML,您可以看到实际发生了什么。

【讨论】:

  • 有趣的事实:当我执行var_dump($link); 时,图像在 var_dump 输出中正确显示。当我使用echo 'Somethingsomething ' . $link . ' something'; 时,什么都没有显示,但是当我在输出位置使用萤火虫时,我得到了我在问题中给出的字符串。
  • @Lucas:好的,删除所有内容,然后从this paste 复制代码并告诉我你得到了什么输出?
【解决方案2】:

试试这个:

Simply you should improve your line like this

$link = '<img src="{$lname}/data/num_{$row}.png" alt="{$row}" />';

Never use same commas in the same line, use different instead.

-

谢谢

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 2019-10-22
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2012-06-24
    相关资源
    最近更新 更多