我使用以下内容检查网址中的动态城市ID,如下所示:
http://website.com/homes-for-sale-results/?cityId=10008&propertyType=SFR%2CCND&minListPrice=&ma
我正在使用的PHP是:
if (strpos($url, "cityId=9918")) {
$cityName = "Allenhurst";}
} elseif (strpos($url, "cityId=1000")) {
$cityName = "Highlands";
} elseif (strpos($url, "cityId=10009")) {
$cityName = "Holmdel";
除了cityid包含另一个城市的id之外,这是有效的,因为一个有4位数,另外5位数。在上面的例子中:Highlands =" 1000"和" Holmdel =" 10009"。
如何查询确切的cityid?
答案 0 :(得分:3)
是的,strpos
不是一个很好的解决方案。
您可以先将问题分解为几个较小的部分,以便更轻松。
由于它是一个URL,您可以先使用parse_url()
以确定的方式从URL中提取查询字符串。然后,您将能够使用parse_str()
之类的内容将该查询字符串的各个部分解析为单个数据点。因此,您可以直接将数字与特定值进行比较。
$url = "http://website.com/homes-for-sale-results/?cityId=10008&propertyType=SFR%2CCND&minListPrice=&ma";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $data);
$cityId = $data["cityId"];
if ($cityId == 9918) {
$cityName = "Allenhurst";
} elseif ($cityId == 1000) {
$cityName = "Highlands";
} elseif ($cityId == 10009) {
$cityName = "Holmdel";
}
因此,在第一步$query
为我们提供了URL中的确切查询字符串(?
之后的所有内容)。然后$data
在查询字符串中为每个名称/值对提供一个数组。这意味着最后,您可以通过cityId
(我刚刚在此分配给$data["cityId"]
)从查询字符串中获取$cityId
的确切值,并将其用于直接比较。