我正在使用IP2Location Tags插件通过使用IP地址获取用户的位置。我想将do_shorcode()返回的值赋给PHP变量。我试过这段代码:
<?php
$region = do_shortcode('{ip:regionName}');
echo ord($region);
?>
并使用ord()
打印ASCII值。
echo ord($region);
返回ASCII值123(即{)。获取$region
中每个字符的ASCII值后,我发现$region
包含值{ip:regionName}
,但在使用echo $region;
时会打印Maharashtra
。
所以我的问题是如何将Maharashtra
作为$region;
中的值,这将有助于我比较字符串。
答案 0 :(得分:1)
由于此插件使用过滤器替换关键字,do_shortcode
什么都不做。我很惊讶你会通过回显$ region来获得Maharashtra但是如果你在the_content中回应它,那么过滤器可能会应用。
要获取位置,您只需从插件中调用该类并调用必要的函数即可。
<?php
$ip2l = new IP2LocationTags();
$ip2l_location = $ip2l->get_location($_SERVER['REMOTE_ADDR']);
$region = $ip2l_location['regionName'];
?>
$region
将是regionName。
$ip2l_location
将包含整个位置值,包括countryCode,countryName等,它们存储在关联数组中。