当我打印一个变量时,我得到一个空白结果,当我检查该元素时,我看到的是
。
我试图检查变量是否为空或等于该值:
ir( empty($string) || $string == " " || strpos($string, " ") || $string == " "){
//Do Something.
}
但是该条件内的代码未执行。
当我var_dump($string)
时,我得到:
string(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
的问题,所以我将其排除在解决方案之外。)
答案 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?