比较URL字符串时隐藏的字符

时间:2017-09-15 11:25:47

标签: php string

调试字符串比较时我真的很奇怪。 从函数生成的链接(Magento getCategoryUrl()) 但无法将其与其打印的#34;相匹配。版本;

我尝试了所有可能的字符串比较选项,并转义原始字符串。最后,使用 strpos 我发现问题出在第一个" h"或之前的东西。

$menu_link = $this->getMenuLink($cat_id)
echo $menu_link; // https://example.com/cat_1

if($menu_link == "https://example.com/cat_1"){...}  // false
if($menu_link  === "https://example.com/cat_1"){...}  // false
if("https://example.com/cat_1" == $menu_link){...}  // false

if(strcmp( $menu_link , "https://example.com/cat_1") == 0){...}  // false
if(strcasecmp( $menu_link , "https://example.com/cat_1") == 0){...}  // false

//Sanity Check ...
if("https://example.com/cat_1" == "https://example.com/cat_1"){...}  //true..

$menu_link = "". trim($menu_link); // no effect
if($menu_link === "https://example.com/cat_1"){...}  // false

if(strpos( $menu_link , "https://example.com/cat_1") ){...} //false

// ONLY THIS WORKS ?!
if(strpos( $menu_link , "ttps://example.com/cat_1") ){...} //true

仍然无法解释为什么会这样。

更新
正如@u_mulder建议我尝试了var_dump,gives string(51) ...但是长度不正确,还有9个额外的字符。 我找不到任何方法来打印它们。

1 个答案:

答案 0 :(得分:2)

开头是

$menu_link,其他地方是$meny_link:)