如何检查“”是否存在?

时间:2018-07-01 05:52:55

标签: php string utf-8

当我打印一个变量时,我得到一个空白结果,当我检查该元素时,我看到的是 

我试图检查变量是否为空或等于该值:

ir( empty($string) || $string == " " || strpos($string, " ") || $string == " "){
    //Do Something.
}

但是该条件内的代码未执行。

当我var_dump($string)时,我得到:

string(2) " "

我应该怎么检查变量是否等于或包含该变量?

2 个答案:

答案 0 :(得分:1)

首先,人们一直无所适从……

Xlsx.DisplayAlerts = False

如果Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Start-Process -FilePath "C:\sip\GetProcessInstance.exe" -$args[0] } -ArgumentList "http://hostname:8080/jbpm-console/rest/task/listUserTasks?potentialOwner=abc@xyz.com" Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Start-Process -FilePath "C:\sip\GetProcessInstance.exe" -ArgumentList "http://hostname:8080/jbpm-console/rest/task/listUserTasks?potentialOwner=abc@xyz.com" } Invoke-Command -HostName abcdefg -Credential $creds -ScriptBlock { Get-ChildItem C:\ } 位于字符串的开头,则评估结果为strpos($string, " ") (“偏移位置”),并且 与编写条件表达式的方式。

您需要像这样从0显式检查0(严格检查):

false

但是,这不是您的实际问题,因为...

您有一个多字节空间,当您用光标“突出显示”该字符时,便可以证明这一点-它只有一个字符长,但是当您调用false时,字节数为{{1} }。

strpos()无法帮助您。 if (empty($string) || strpos($string, " ") !== false || $string == " ") { //Do Something. } 无法帮助您。您需要知道多字节的内容。

为了允许最广泛的匹配,我将使用一个正则表达式搜索所有空白字符,不可见的控制字符和未使用的代码点。

var_dump()

这将检查字符串是否真正为空或完全由一个或多个上述字符组成。

这里有个小样:https://3v4l.org/u7eoK

(我真的不认为这是2的问题,所以我将其排除在解决方案之外。)

向下滚动此资源:https://www.regular-expressions.info/unicode.html

答案 1 :(得分:0)

解决方案,如果使用utf-8:

$a = str_replace("\xC2\xA0", '', $a);

如果是ASCII:

$a = str_replace("\xA0", '', $a);

然后$ a现在为空,您可以使用if(empty($a))

进行检查。

答案在这里:Does html_entity_decode replaces   also? If not how to replace it?