【发布时间】:2014-05-15 05:58:10
【问题描述】:
我正在使用 PHP 抓取静态站点的 DOM,并提取特定的数据位,以便将内容放入数据库中。
对于这个例子,我将元素的内部 HTML 存储到 $domString,我可以看到字符串是“描述”,但是当我将代码中的 $domString 与“描述”进行比较时,没有匹配项.
if($domString == 'Description') {
// This is not happening, even though I know
// $domString contains 'Description' :(
}
我有条纹空白和其他东西,当我 var_dump() 他们都出来时,我得到了这个:
string(45) "Description"
string(11) "Description"
按照 Álvaro G. Vicario 的建议,通过 bin2hex() 运行它们分别返回以下两个值:
3c74642076616c69676e3d22746f702220636f6c7370616e3d2232223e4465736372697074696f6e3c2f74643e
4465736372697074696f6e
我需要一种方法来消除第一个字符串。
【问题讨论】:
-
如果你这样做
trim($domString) == 'Description'会怎样? -
@AbhikChakraborty 我想这不是问题,因为通常空格会显示在
var_dump(); -
如果两个字符串有不同的编码可能会发生这种情况
-
里面有软连字符吗?
-
对这两个字符串尝试
mb_detect_encoding($str),然后使用mb_convert_encoding(domString, /*same_encoding*/)将它们都转换为相同的编码,看看它们是否仍然相同。
标签: php