我称之为URL:
http://www.example.com/?check=aaa bbb ccc
并且以下行检查$ _GET值是否包含空格:
if (isset($_GET)) {
while(list($name,$value) = each($_GET)) {
if (ctype_space($value)) {
echo "contains spaces";
} else {
echo "no spaces<br />";
}
echo $value;
}
}
输出结果为:
no spaces
aaa bbb ccc
我的问题是:why ctype_space
函数找不到字符串中的空格&#34; aaa bbb ccc
&#34;?
答案 0 :(得分:2)
函数ctype_space,如果文本中的每个字符都创建某种空格
,则返回TRUE例如,
&#34; \ n \ r \吨&#34;返回true &#34; \ nABC&#34;返回错误
更多信息 http://php.net/manual/en/function.ctype-space.php
尝试
$subject = "aaa bbb ccc"; $pattern = " ";
if ( strpos($subject, $pattern) !== false ) {
echo "contains spaces"; } else {
echo "no spaces<br />"; }
答案 1 :(得分:1)
ctype_space
仅检查字符串中的所有字符是否为空格。如果要检查字符串是否只包含空格,则应使用其他方法,例如strpos
:
if (strpos($value, ' ') !== false) {
echo "contains spaces";
}
答案 2 :(得分:0)
因为函数检查变量== whitespaces
您可以使用此功能替换它:
if (preg_match("/(\r|\n|\t|\s)/", $value)){