【发布时间】:2020-02-08 21:46:38
【问题描述】:
让我解释一下我的情况, 我正在为我的公司制作一个邮件模板。 此邮件模板必须完全采用 HTML 格式。 邮件模板包含我们商店的不同产品。 该模板包含有关产品信息的框。 让我给你看我的模板:
mailing-template.html
<div>
##PRODUCT_NAME## <br />
Onderdeel Nr: ##PRODUCT_ID## <br />
Merk: ##PRODUCT_BRAND## <br />
Prijs: €##PRODUCT_PRICE## <br />
</div>
您可能知道,##PRODUCT_INFORMATION# 是我的产品信息将出现的地方。 在 PHP 的一些帮助下,我可以替换它。我从不同的数组中获取我的产品信息,如下所示:
数组
$products = array
(
array
(
'product_id' => 'RD55559955',
'product_name' => 'Ontsteking (DI) Cassette Zwart Origineel Saab 9-3/9-5',
'price_excl' => 22600,
'product_brand' => 'Origineel Saab',
),
array
(
'product_id' => 'RD55559955',
'product_name' => 'een ander product',
'price_excl' => 22600,
'product_brand' => 'Origineel Saab',
),
array
(
'product_id' => 'RD55559955',
'product_name' => 'nog een ander product',
'price_excl' => 22600,
'product_brand' => 'Origineel Saab',
)
);
现在让我告诉你我如何替换信息:
createTemplate.php
//get content from mailing-template
$template = file_get_contents(dirname(__FILE__).'/mailing-template.html');
$content = $template;
foreach ($products as $product){
//replace placeholders with actual product data
$content = str_ireplace('##PRODUCT_ID##', $product['product_id'], $content);
$content = str_ireplace('##PRODUCT_NAME##', $product['product_name'], $content);
$content = str_ireplace('##PRODUCT_PRICE##', round($product['price_excl']/100, 2), $content);
$content = str_ireplace('##PRODUCT_BRAND##', $product['product_brand'], $content);
//echo the template
echo $content;
}
我正在使用str_ireplace 来替换信息。
我想要的:所以我想要的是为每个数组显示一个产品信息框。
问题:它的作用是仅从第一个数组中显示三个产品框。
问题:有谁知道我如何从所有不同的三个数组中显示三个框?
这个问题很大,因为答案可能很简单, 但是,我已经被困了很长一段时间了,所以我希望这里有人可以帮助我。 感谢您抽出宝贵时间,感谢我能得到的所有帮助!
我对这一切都很陌生,包括stackoverflow,所以无论如何你都可以纠正我。 :)
注意:当 i echo $product['product_name'] 在 $content 之外时,它会显示三个不同的名称。每当我编辑$content 时它都不起作用。
我似乎不明白为什么。
【问题讨论】:
标签: php html arrays foreach file-put-contents