0
<?php if ($this->checkPosition('image')) : ?>
<?php
echo "<table class=\"remove-margin-t\"  cellpadding=\"0\" cellspacing=\"0\" width=\"97%\"  align=\"center\" border=\"0\" style=\"max-width:625px; border:1px solid;\" background=\"..\images";
?>
<?php
echo $this->renderPosition('image')
<?php
echo ".png\">";
?>
<?php endif; ?>

我试图弄清楚如何正确调用图像。调用图像的回声并具有特定名称,例如“粉红色”,“蓝色”,“绿色”等。但是,这取决于位置部分...

这就是它在 html 中的样子。

<table cellpadding="0" cellspacing="0" width="97%" align="center" border="0" style="max-width:625px; border:1px solid #CCC"  background="http://localhost/images/[insert color name here].png" >

这是原始的php

<?php if ($this->checkPosition('color')) : ?>
<?php echo $this->renderPosition('color'); ?>
<?php endif; ?>

任何帮助,将不胜感激。我确信它一定是'\'或'"'问题。

最好的,

史蒂文

对杰瑞德:

你的意思是这样吗?

<?php if ($this->checkPosition('image')) : ?>
<?php
echo "<table class=\"remove-margin-t\"  cellpadding=\"0\" cellspacing=\"0\" width=\"97%\" align=\"center\" border=\"0\" style=\"max-width:625px; border:1px solid;\" background=\"../images/";
echo $this->renderPosition('image')
echo ".png\">";
?>
<?php endif; ?>
4

2 回答 2

1

您不需要在每一行 PHP 代码上打开/关闭 PHP 标记。您的代码可以这样重写:

<?php

if ($this->checkPosition('image')) {
    echo '<table class="remove-margin-t" cellpadding="0" cellspacing="0" width="97%"  align="center" border="0" style="max-width:625px; border:1px solid;" background="../images"' . $this->renderPosition('image') . '.png">';
}

?>

我用单引号替换了一些双引号,以避免到处使用反斜杠。
我连接了您的文本,以便只echo使用一个。

我在第一个结尾处修正了一个可能的错误echo:我用斜杠替换了黑斜杠,因为 URL 中的目录分隔符是斜杠。

于 2012-08-06T00:31:02.357 回答
0

我不知道 '$this' 是什么对象,也不知道 checkPosition 方法是做什么的 另外,输出 'renderPosition('color') 会产生什么。

无论哪种方式,这段代码

<?php if ($this->checkPosition('color')) : ?>
<?php echo $this->renderPosition('color'); ?>
<?php endif; ?>

是不恰当的,应该写成:

<?php
if ($this->checkPosition('color')) {
     echo $this->renderPosition('color');
} 
?>

话虽如此,服务器标记“?php”和“?” 代表服务器代码的开始和结束。因此,通常在这些标签之外是标准的 html 标记。

因此,您可以在服务器代码之外使用 html 标记,

<?php if ($this->checkPosition('color')) { ?>
      <div style="width:97%;text-align:center;max-width:625px;border:1px solid #CCC;background-image:url('<?php echo "http://localhost/images/" . $this->renderPosition('color') . ".png"; ?>');display:inline-block;position:relative;">
          &nbsp;
      </div>
<?php } ?>

我把你的表变成了一个 div,并使用了 CSSstyleAttributes,而不是折旧的 html 属性。

另外,我还假设 renderPosition 的输出是一个文件名,没有文件扩展名。

编辑:

localhost 是指您自己的计算机。

您可能想使用:

echo "//" . $_SERVER['SERVER_NAME'] . "/images/" . $this->renderPosition('color') . ".png";

代替

 echo "http://localhost/images/" . $this-renderPosition('color') . ".png";
于 2012-08-06T00:58:00.597 回答