当前位置: 代码迷 >> PHP >> 相同字符串不相等的有关问题
  详细解决方案

相同字符串不相等的有关问题

热度:47   发布时间:2016-04-28 18:02:06.0
相同字符串不相等的问题
本帖最后由 qq_24844315 于 2014-12-31 12:16:38 编辑
说明:从一个页面采集ip和端口,$ip和$duankou是采集的,然后发现不能用,但是手动输入可以用,对比了
两个字符串,发现长度不相同,但是编码相同,请教这该怎么办
现在是 $b 是有效的,$a无效,




$a="tcp://".$ip.":".$duankou;
$b="tcp://77.81.105.147:7808";

echo $a."<br>";
echo $b."<br>";

   $encode = mb_detect_encoding($a, array("ASCII","UTF-8","GB2312","GBK","BIG5")); 
  $encodes= mb_detect_encoding($b, array("ASCII","UTF-8","GB2312","GBK","BIG5")); 


   echo $encode."<br>";
echo $encodes."<br>";

$changdu1= strlen($a);
$changdu2= strlen($b);

echo $changdu1."<br>";

echo $changdu2;
if($a==$b)
{

echo "相等";

}

else
{
echo "不等";
}




输出:


//字符
tcp://77.81.105.147:7808
tcp://77.81.105.147:7808

//编码
ASCII
ASCII

//长度
42
24

//结果
不等


------解决思路----------------------
$s = 'YTo0OntpOjA7UzoyNDoidGNwOi8vNzcuODEuMTA1LjE0Nzo3ODA4IjtpOjE7Uzo0MjoidGNwOi8vPHRkPjc3LjgxLjEwNS4xNDc8L3RkPjo8dGQ+NzgwODwvdGQ+IjtpOjI7Uzo1OiJBU0NJSSI7aTozO1M6NToiQVNDSUkiO30=';

$a = unserialize(base64_decode($s));
var_dump($a);
array(4) {
  [0]=>
  string(24) "tcp://77.81.105.147:7808"
  [1]=>
  string(42) "tcp://<td>77.81.105.147</td>:<td>7808</td>"
  [2]=>
  string(5) "ASCII"
  [3]=>
  string(5) "ASCII"
}


原因很明显了吧?
其实你在浏览器中查看网页源代码就可以发现的
  相关解决方案