繁体   English   中英

PHP和CSS引用问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM