【发布时间】:2014-04-09 20:25:24
【问题描述】:
我正在使用的 PHP 开发人员使用此代码在电子邮件中生成 X 个图像 -
<?php
foreach ($viewerPhotos as $photo) {
echo sprintf('<div style="$photoBgCss"><img src="%s" style="border:0;vertical-align: middle;" alt="User photo" width="77" height="77" border="0" /></div>', $photo);
}
?>
我在图像和样式属性周围添加了 div。与 $photoBgCss 相关的样式是 -
$photoBgCss = "background-image: url('$staticUrl/images/general/email/photo-bg.png');
background-repeat: no-repeat;
background-position: 0 0;
display:inline-block;
margin-right:1%;
padding: 6px 0 15px 0;
text-align: center;
width: 89px;";
当我给自己发送一封测试电子邮件时,背景图片无法解析。我知道这与引号和/或 () 有关。我尝试了几种方法,但没有找到解决方案。任何帮助表示赞赏。
编辑:我在下面提到了这是一条评论,但在这里它会更具可读性...我尝试在 div 上添加内联背景图像但仍然有问题 -
echo sprintf('<div style="background-image: url('$staticUrl/images/general/email/one-photo-bg.png');"><img src="%s" style="border:0;vertical-align: middle;" alt="User photo" width="77" height="77" border="0" /></div>', $photo);
【问题讨论】:
-
你在字符串的开头缺少一个
-
在该循环中有趣地使用 sprintf。无论如何,那行是错误的,它不会用变量的内容替换 $photoBgCss 。正如芭芭拉所说,它也是无效的 HTML。
-
芭芭拉,谢谢你的收获。我纠正了这一点。现在,我也尝试像这样添加内联背景,但仍然遇到问题 - echo sprintf('', $photo);
标签: php css html-email