好的,这是我的代码:
<?php if(empty($_GET['keywords']))
{
echo "Latest jobs in ".$_GET['loc'];
}
elseif(empty($_GET['loc']))
{
echo "Latest ".$_GET['keywords']." jobs";
}
elseif(empty($_GET['keywords']) && ($_GET['loc']))
{
echo "BLAH";
}
else
{
echo "Latest ".$_GET['keywords']." jobs in ".$_GET['loc'];
}
?>
在索引页面上有2个表单字段,关键字&amp; LOC 现在,如果用户在不输入数据的情况下点击表单 所以$ _get ['keywords']&amp; $ _get ['loc']都是空的 我希望它能回应BLAH
如果$ _get ['keywords']为空但$ _get ['loc']不回显“最新作业”。$ _ GET ['loc'];
如果$ _get ['loc']为空但$ _get ['keywords']不是 echo最新“。$ _ GET ['keywords']。”作业“;
如果它们都包含数据,我希望它回显“最新”。$ _ GET ['keywords']。“作业”。$ _ GET ['loc'];
我的.htaccess文件包含此
RewriteRule jobs/(.*)$ jobs.php?keywords=&loc=$1
RewriteRule (.*)/jobs$ jobs.php?keywords=$1&loc=
RewriteRule (.*)/jobs-in/(.*)$ jobs.php?keywords=$1&loc=$2
jobs.php是我希望回显上述数据的页面 它用于标题格式化等
请帮助大家,到目前为止,我已经花了3个小时,而且我现在所拥有的只是代码块:(
** STR_REPLACE代码**
function search()
{
if(isset($_POST['keywords']) || ($_POST['loc']))
{
$replace_array = array(',',' ');
if(empty($_POST['keywords']))
{
$keywords = '';
$loc = str_replace($replace_array,'-',$_POST['loc']);
header("Location: jobs/$loc");
} elseif(empty($_POST['loc']))
{
$keywords = str_replace($replace_array,'-',$_POST['keywords']);
$loc = '';
header("Location: $keywords/jobs");
}
else
{
$keywords = str_replace($replace_array,'-',$_POST['keywords']);
$loc = str_replace($replace_array,'-',$_POST['loc']);
header("Location: $keywords/jobs-in/$loc");
}
}
}
答案 0 :(得分:0)
如果两者都为空,则第一个if
也会解析为true,因为A && B == true
暗示A == true
(基本布尔逻辑)。
试试这个:
if(empty($_GET['keywords']) && empty($_GET['loc'])) {
echo "BLAH";
} elseif(empty($_GET['keywords'])) {
echo "Latest jobs in ".$_GET['loc'];
} elseif(empty($_GET['loc'])) {
echo "Latest ".$_GET['keywords']." jobs";
} else {
echo "Latest ".$_GET['keywords']." jobs in ".$_GET['loc'];
}
最后,str_replace
与此问题(或您的重写规则)有什么关系?