看不见的字符正在扰乱strpos();如何对琴弦进行消毒? [重复]

问题描述 投票:0回答:1

我似乎遇到了问题

strpos()
由于某种原因,它总是在不应该返回的时候返回
false

这就是问题发生的地方:

if ( strpos( $attachment_url, $upload_dir_paths['baseurl'] ) !== false ) {
    //some code here
}

我制作了

var_dump
$attachment_url
$upload_dir_paths['baseurl']
并比较了这两个值,以确保“针”位于“大海捞针”中,而且事实上确实如此。

var_dump($upload_dir_paths['baseurl']);    //needle
var_dump($attachment_url);                 //haystack

上面

var_dump
的结果:

string(39) "//localhost:3000/wp-content/uploads"
string(67) "//localhost:3000/wp-content/uploads/2016/10/stunning-photograph.jpg"

有谁知道为什么

if
语句总是返回
false

php sanitization non-printing-characters
1个回答
1
投票

我认为问题出在变量 $upload_dir_paths['baseurl'] 上。
字符串“//localhost:3000/wp-content/uploads”由 35 个字符组成,与您问题的 39 个字符不同。
我认为有一些“隐藏”字符无法由您的浏览器/终端呈现。

如何解决问题?
也许可以尝试变量 $upload_dir_paths['baseurl'] 上的函数“trim”。应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.