我有一个表单,允许用户选择2个或多个类别。
php检查url类似:
$categories= (!isset($_GET["categories"])?0:explode(";",$_GET["categories"]));
普通URL类似于此
site.com/cat.php?page=&categories=1;2
如果用户将URL更改为
site.com/cat.php?page=&categories[1]
该站点将显示
Warning: explode() expects parameter 2 to be string, array given in...
所以我试着像这个一样检查$_GET
is_string($_GET["category"])
但运气不佳
试试这个?
$catString=is_string($_GET["categories"]) ? $_GET["categories"] : implode(';',$_GET["categories"]);
$categories = (!isset($_GET["categories"])?0:explode(";",$catString));
或者我想更好的解决方案是(而不是从数组转换为字符串再转换回数组,这有点傻):
$categories = (!isset($_GET["categories"])? "" : $_GET["categories"];
$categories = is_array($categories) ? $_GET["categories"] : explode(";",$catString));
if(isset($_GET["categories"]))
{
if(is_array($_GET["categories"]))
$categories = implode(" ",$_GET["categories"]);
else
$categories = explode(";",$_GET["categories"]);
}
else
$categories='';
如果是数组,请使用内爆或爆炸函数。