[英]PHP and CSS quotes issue
HY,
我的報價有問題。 我正在制作一個html郵件通訊,這是一場噩夢。 我已經閱讀了很多關於如何解決這個問題,但沒有什么是行不通的。 我試過沒有引號,用\\ ......什么都行不通(也許我做錯了)。
所以,讓我們說這是代碼:
echo '<td style="
background-image:url(?http://x/y/image.png?);
"
</td>';
? - 使用什么報價
如果你想要引用它應該是這樣的,但在這種情況下你並不真正需要它們。 如果您使用單引號打開,則必須轉義字符串中的所有單引號。
echo '<td style="
background-image:url(\'http://x/y/image.png\');
"
</td>';
據我所知,hss郵件中的css非常有限,特別是定位。 但我可能是錯的。
CSS中的引號對於后台url是可選的 - 所以只需省略它們即可。
這是一個類似的問題,有更多的信息: 引用url()的值真的有必要嗎?
此外,你可以通過在他們面前放一個\\
來逃避你的報價,例如url(\\'http://www.domain.com\\')
至於HTML郵件問題。 最好的標准是堅持使用表格和內聯樣式CSS。 我會避免任何相對/絕對定位。 即使某些電子郵件客戶端可能正確顯示它,但並非所有人都會。 因此最好盡可能保持一致並避免某些標記。
轉義示例代碼中的單引號,如下所示:
echo '<td style="
background-image:url(\'http://x/y/image.png\');
"
</td>';
在引號之前使用\\
來轉義字符串的結尾:
echo '<td style="
background-image:url(\'http://x/y/image.png\');
"
</td>';
引號是可選的: 引用url()的值真的有必要嗎?
但是,你可以逃脫它們:
echo "<td style=\"url('example.com')\"";
要么
echo '<td style="url(\'example.com\')";
我不認為這是選擇正確報價的問題。 正如許多其他人已經指出的那樣,引號是可選的,或者,您可以簡單地轉義引號,它仍然有效。
我認為問題是並非所有郵件客戶端都支持background-image
,特別是Microsoft Outlook 2007+甚至Outlook.com 都不支持它。
我建議在電子郵件客戶端的CSS支持級別上查閱以下資源。
您可能想要嘗試的一種解決方法是使用background
而不是background-image
。
此外,如果您在構建HTML電子郵件時遇到問題,可能需要嘗試https://www.mailrox.com/ 。 我自己沒有嘗試過,所以不能評論產品有多好。
你不需要在css url()
引用。
您可以嘗試使用以下方法:
echo <<<HTML
<td style="background-image:url('image/url/here.jpg');">Table Data</td>
HTML;
如果您的筆記確定如何使用它,請查看PHP EOD: PHP.net字符串
還要確保在電子郵件標題中設置了正確的內容類型和字符集(例如$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\\r\\n";
)以及PHP取決於您使用新聞稿模板的方式。
在創建電子郵件時,CSS可能會受到限制,因為郵件客戶端的變化遠遠超過瀏覽器,有些人比其他客戶端支持更多。 試一試,一定要檢查多個瀏覽器和電子郵件客戶端。
希望這可以幫助。
萊昂。
你應該使用heredoc語法。
echo<<<EOT
<td style="background-image:url(?http://x/y/image.png?);"
</td>
EOT;
當您需要使用變量時,以及需要打印引號時,這非常有用。
確保沒有其他東西在EOT線上,否則無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.