在这里,我分配了像" India"使用$country
函数转换为document.write()
变量。
它还会打印字符串" India"。但是当我尝试-1
并返回" False"时,它会返回strcmp
在IF声明中。
<script language="Javascript">
var country_var = geoplugin_countryName(); //India
</script>
<?php
echo $country = "<script>document.write(country_var);</script>"; //Return : India
echo strcmp($country,"India"); //Return : -1
if(trim($country) == 'India')
echo "<br>True";
else
echo "<br>False";
?>
我知道PHP是服务器端,JS是客户端语言。
是否可以比较任何其他方式? 谢谢!
答案 0 :(得分:1)
您正在将字符串"India"
与字符串"<script>document.write('India');</script>"
进行比较。您可以直观地看到这两个字符串无处相同或相同。
返回true的一种方法是检查那个long-script-string是否包含字符串&#34; India&#34;,并不是说这是实现你正在做的事情的最好方法,而且它可能是一种错误的方式,但仍然是一种方式:
if (strpos($country, 'India') !== false) {
echo 'The country string has India in it';
}
另一种方法是从变量$ country中删除"<script>document.write('"
和"');</script>"
,然后再进行比较。
您可以使用str_replace()
或preg_replace()
。
在任何情况下,您都应该先将一个干净的变量与一个字符串进行比较,然后再将该变量包装在<script>
标记中,这样:
<?php
echo $country = "India"; //Return : India
echo strcmp($country, "India");
if($country === "India")
echo "<br>True";
else
echo "<br>False";
$country = "<script>document.write('" . $country . "');</script>";
?>
P.S。虽然我不明白为什么你甚至需要把国家名称放在document.write()
?