我正在显示从客户提供的记录中提取的地址数据,并尝试对其进行正确格式化。每个客户端都可以指定他们希望他们的客户数据如何显示,因此我为每个使用 php 的sprintf()及其格式化功能的客户端使用了一个可编辑的基于 JSON 的模板。
所以客户 A,希望他们的地址看起来像:
Bill Smith
123 Fake St
Whoville, OH
将保存格式为%s<br>%s<br>%s, %s
.
客户 B 想要:
Bill Smith
123 Fake St, Whoville, OH 94301
保存格式为%s<br>%s, %s, %s %s
然后,我将这些格式存储在特定于客户端的模板中,该模板告诉我要从哪些字段中提取以及格式,即:
{
"fields": [
"full_name",
"street",
"city",
"state",
"zip"
],
"format": "%s<br>%s, %s, %s %s"
}
解码 JSON、提取数据并使用sprintf()
提供的格式写入数据效果很好,并且不需要我创建自定义格式化函数来处理各种地址格式。问题是如果一条数据是空的,它会被显示,即如果街道地址丢失,我们有:
Bill Smith
, Whoville, OH 94301
我正在尝试提出一个不需要重新发明轮子的解决方案,但我对其他架构持开放态度,这将使我能够灵活地处理具有相应灵活格式的“可选”数据。