sprintf与空参数检测

时间:2013-04-04 11:18:39

标签: php variables conditional-statements printf

我正在尝试使用搜索结果为HTML页面准备元素。用户可以提供各种标准来搜索表单,例如城市,地区,类型。用户可以提供每个标准或不提供标准。我想根据选定的标准生成标题。

我的代码:

$criteria = array('city' => $_POST['city'], $region = $_POST['region'], type => $_POST['type']);
$titleBase = 'You are looking for %s, %s, %s - mySite.com';
$title = sprintf($titleBase, $criteria['city'], $criteria['region'], $criteria['type']);
parse($title, '<title>');

效果: 您正在寻找城市,地区,类型 - mySite.com

这很好,但如果用户不提供“区域”和“类型”怎么办?我会: 您正在寻找,输入 - mySite.com。

任何解决方案?

1 个答案:

答案 0 :(得分:4)

有很多可能的方法,从非常有针对性的修复开始,随时推广。

最简单的应该是这样的:

$lookingFor = implode(', ', array_filter($criteria));
$title = 'You are looking for '.$lookingFor.' - mySite.com';