PHP如果Statement不匹配相同的字符串

时间:2015-10-13 18:35:16

标签: php string if-statement

我正在运行一个html表单来传递宿主变量,表单本身接受URL然后PHP解析所述URL并返回HOST。

<head>
   <meta charset="ISO-8859-1">
 </head>
<style>
.body {
  width:950px;
  margin:0 auto;
}
.vastInput{
  width:600px;

}
</style>
<div class='body'>
<form id='vastFormatter' method='POST' action="#" accept-charset="ISO-8859-1">
  <input type='text' name='tagURL' class='vastInput'/>
  <select name='platform'>
    <option value='spotx'>spotxchange</option>
    <option value='liverail'>liverail</option>
    <option value='adap'>adap tv</option>
  </select>
  <input type='submit' name='submit' value='Submit'>
</form>

这是PHP:

$inputValue = $_POST['tagURL'];
$tagParsed = parse_url($inputValue);


$platform = $_POST['platform'];
$scheme = $tagParsed["scheme"];
$host = $tagParsed["host"];
$path = $tagParsed["path"];

当在变量$ host上运行if语句以查看它是否与特定字符串匹配时,会出现问题。

if($host == "vpc.altitude-arena.com") {

    echo "matched";  

}

经过多次测试后,我确定在发布表单值和if语句的某处,主机变量中存储的字符串的字符编码不正确,无法正确编码主机值中的“ - ”。

有关如何解决此问题的任何建议吗?

1 个答案:

答案 0 :(得分:0)

wmfranca,

每当使用表单时,您必须清理字符串。您可能认为表单帖子来自您的代码,但它可能来自其他地方。 因此,首先修剪结果,然后尝试删除任何空格或您可能找到的任何其他奇怪字符。

我已经尝试了您提供的代码示例,我可以匹配结果:     

// I take the variable and run a if statement comparison on it.

if($host === "vpc.altitude-arena.com") {
  echo "Yep it matched";
}
?>

我还建议看一下: http://php.net/manual/en/filter.filters.sanitize.php

特朗德