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; ?>

画像を適切に呼び出す方法を見つけようとしています。echo for image が呼び出され、「ピンク」、「ブルー」、「グリーン」などの特定の名前が付けられます。ただし、位置の部分に依存します...

これは、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">';
}

?>

どこでもバックスラッシュを使用しないように、一部の二重引用符を一重引用符に置き換えました。1 つだけが使用される
ように、テキストを連結しました。echo

そして、最初の最後にある可能性のある間違いを修正しechoました。URL のディレクトリ区切り文字はスラッシュであるため、ブラックスラッシュをスラッシュに置き換えました。

于 2012-08-06T00:31:02.357 に答える
0

'$this' が何のオブジェクトなのか、メソッド checkPosition が何をするのかもわかりません。

いずれにせよ、このコード

<?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 に変更し、減価償却された html 属性の代わりに CSSstyleAttributes を使用しました。

また、 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 に答える