3

ハイ、

引用符で困っています。私は HTML のメール ニュースレターに取り組んでいますが、それは悪夢です。これを修正する方法について多くのことを読みましたが、何も機能しません。引用符なしで \ ... を試してみましたが、うまくいきません (何か間違ったことをしていたのかもしれません)。

だから、これがコードだとしましょう:

echo '<td style="
    background-image:url(?http://x/y/image.png?);
                "
      </td>';

? - 使用する引用符

4

9 に答える 9

3

引用符が必要な場合はこのようにする必要がありますが、この場合は実際には必要ありません。一重引用符で開く場合は、文字列内のすべての一重引用符をエスケープする必要があります。

echo '<td style="
    background-image:url(\'http://x/y/image.png\');
                "
      </td>';

私が知る限り、html メールの css は非常に制限されており、特に配置が制限されています。しかし、私は間違っている可能性があります。

于 2012-11-08T14:05:07.047 に答える
2

これは正しい引用符を選択する際の問題ではないと思います。他の多くの人がすでに指摘しているように、引用符はオプションです。あるいは、引用符をエスケープするだけでも有効です。

問題は、すべてのメールクライアントがサポートしているわけではなくbackground-image、特にMicrosoftOutlook2007+やOutlook.comでさえサポートしていないことだと思います。

電子メールクライアントのCSSサポートのレベルについては、次のリソースを参照することをお勧めします。

試してみたい回避策の1つは、backgroundの代わりにを使用することですbackground-image

また、 HTML電子メールの作成で問題が発生した場合は、https://www.mailrox.com/を試してみることをお勧めします。私は自分で試したことがないので、製品の良さについてコメントすることはできません。

于 2012-11-08T14:21:17.710 に答える
2

次のように、コード例で一重引用符をエスケープします。

echo '<td style="
    background-image:url(\'http://x/y/image.png\');
                "
      </td>';
于 2012-11-08T14:05:13.007 に答える
2

引用符の前に使用\して、文字列の末尾をエスケープします。

echo '<td style="
    background-image:url(\'http://x/y/image.png\');
                "
      </td>';
于 2012-11-08T14:05:16.080 に答える
2

引用符はオプションです: url() の値を引用することは本当に必要ですか?

ただし、それらをエスケープできます。

echo "<td style=\"url('example.com')\"";

また

echo '<td style="url(\'example.com\')";
于 2012-11-08T14:05:32.817 に答える
2

バックグラウンド URL の CSS では、引用符は省略可能です。省略してください。

これに関する詳細な情報を含む同様の質問があります: url() の値を引用することは本当に必要ですか?

\さらに、引用符の前にa を付けることで、引用符をエスケープできます。url(\'http://www.domain.com\')

HTMLメールについて質問です。最良の基準は、テーブルとインライン スタイルの CSS に固執することです。相対/絶対配置は避けます。一部の電子メール クライアントでは正しく表示される場合がありますが、すべての電子メール クライアントで正しく表示されるわけではありません。したがって、可能な限り一貫性を保ち、特定のマークアップを避けることをお勧めします。

于 2012-11-08T14:03:55.840 に答える
0

次の方法を試すことができます。

echo <<<HTML
     <td style="background-image:url('image/url/here.jpg');">Table Data</td>
HTML;

これを使用する方法がわかっている場合は、PHP EOD を参照してください: PHP.net Strings

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";また、ニュースレター テンプレートの使用方法に応じて、E メール ヘッダー (例: ) および PHP に正しいコンテンツ タイプと文字セットが設定されていることを確認してください。

メールクライアントはブラウザよりもはるかに多様であり、一部のクライアントは他よりも多くをサポートしているため、電子メールを作成するときに CSS が制限される可能性があります。試してみて、複数のブラウザと電子メール クライアントで確認してください。

お役に立てれば。

レオン。

于 2012-11-08T14:17:16.910 に答える
0

css 内に引用符は必要ありませんurl()

于 2012-11-08T14:04:15.987 に答える
0

ヒアドキュメント構文を使用する必要があります。

echo<<<EOT
    <td style="background-image:url(?http://x/y/image.png?);"
      </td>
EOT;

これは、変数を使用する必要がある場合や、引用符を出力する必要がある場合に非常に役立ちます。

EOT の行に他に何もないことを確認してください。そうしないと、これは機能しません。

于 2012-12-27T18:21:31.117 に答える