我的第一个问题 - 新的php ...
我在php中有一个下拉/组合框,其中来自MySQL的数据由以下循环填充
while($row = mysql_fetch_array($rs)){<br>
echo 'option value="',$row['ContactID'],'" ',$row['ContactName'],' ----',$row['Phone1'],' ---- ',$row['Email1'],' /option';"
}
上面的回声中缺少V形符号/尖括号......
下拉列表中的输出类似于......
xxxxxxxx----yyyy----zzzzzzz
xxxx----yyyyyy----zzzzzzzzzzz
xx----yy----zz
etc.
如何格式化3列宽度? 我希望输出像这样......
xxxxxxxx yy zzzzz
xx yyyy zzzz
xxxx yyy zzzzzzz
昨天我花了很多时间玩printf和sprintf。我会先查看
答案 0 :(得分:0)
不确定我是否正确理解您要实现的目标。但对于这个答案,我假设您正在寻找格式良好的输出,如下所示:
xxxxxxxx ---- yyyy ---- zzzzzzz
xxxx ---- yyyyyy ---- zzzzzzzzzzz
xx ---- yy ---- zz
您应该查看printf()
(分别为sprintf()
)函数。借助此功能,您可以格式化字符串。在您的示例中,这可以像这样工作:
while($row = mysql_fetch_array($rs)){
echo '<option value="' . $row['ContactID'] . '">' .
sprintf("%10s", $row['ContactName']) .
sprintf("%10s", $row['Phone1']) .
sprintf("%10s", $row['Email1']) .
'</option>';
}
这会用空格填充输出,直到字符串的长度为10个字符(将10
中的%10s
更改为所需的长度)。最小长度应至少等于输出字符串的可能最大长度。
但请记住,HTML中会忽略多个空格,除非您使用显式空格(
),或者将内容放入保留空格的标记中,例如<pre></pre>
。不确定在下拉菜单中是否有必要。