我正在努力打印运输标签并获取最终输出以省略第二个地址行(如果存在)。如果使用sprintf()时$ address2为空,有没有办法有条件地排除换行符?
while($rows=mysql_fetch_array($result)){
$name = $rows['address_name'];
$address = $rows['street1'];
$address2 = $rows['street2'];
$citystatezip = $rows['city'].', '.$rows['state'].' '.$rows['zip'];
$country = $rows['country'];
$text = sprintf("%s\n%s\n%s\n%s\n", $name, $address, $address2, $citystatezip, $country);
$pdf->Add_Label($text);
}
答案 0 :(得分:1)
您的sprintf只有4%'%s'和5个参数。
在这段代码中,我将\ n从sprintf中移除到上面的条件中。
// Don't use mysql_xxxx functions
// Should really be using PDO
// +---------------+
// | |
while($rows=mysql_fetch_array($result)){
$name = $rows['address_name'];
$address = $rows['street1'];
$address2 = $rows['street2'];
$citystatezip = $rows['city'].', '.$rows['state'].' '.$rows['zip'];
$country = $rows['country'];
$addr2 = empty($address2) ? '' : $address2 . "\n";
$text = sprintf("%s\n%s\n%s%s\n%s\n", $name, $address, $addr2, $citystatezip, $country);
$pdf->Add_Label($text);
}