1.
<form action="1.php" method="POST">
姓名:<input type="text" name="name"/><br>
//1.php
$name=trim($_POST["name"]);
checkit($name);
function checkit($a){
$b=str_split($a);//拆分字符串,存为数组
print_r($b);//可显示有空格的值
echo "<br/>";
for($i=0;$i<count($b);$i++){
echo $i;
echo $b[$i];//可输出空格
echo "<br/>";
if($b==" ")//但是无法验证空格
{
echo $b;
echo "space";
break;
}
}
}
问题:if($b==" ")//但是无法验证空格 这一行 ;echo $b[$i];//可输出空格;但是 为何在判断的时候 就不能判断出来有空格呢。
2.
知道PHP是开源的 ,但是 现在我只有PHP手册 没有类库的源代码
查阅好多资料都没找到。我想看底层代码,却做不到。这是为何@@@
请多关照。。
<form action="1.php" method="POST">
姓名:<input type="text" name="name"/><br>
//1.php
$name=trim($_POST["name"]);
checkit($name);
function checkit($a){
$b=str_split($a);//拆分字符串,存为数组
print_r($b);//可显示有空格的值
echo "<br/>";
for($i=0;$i<count($b);$i++){
echo $i;
echo $b[$i];//可输出空格
echo "<br/>";
if($b==" ")//但是无法验证空格
{
echo $b;
echo "space";
break;
}
}
}
问题:if($b==" ")//但是无法验证空格 这一行 ;echo $b[$i];//可输出空格;但是 为何在判断的时候 就不能判断出来有空格呢。
2.
知道PHP是开源的 ,但是 现在我只有PHP手册 没有类库的源代码
查阅好多资料都没找到。我想看底层代码,却做不到。这是为何@@@
请多关照。。
大部分源码都是C写的。
// {
// echo $b[i];
// echo "space";
// break;
// }
// }这样也不行。
$arr1 = str_split($str);
print_r($arr1);
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)还是有空格的 而且我输出的时候 echo $b[i];
也能输出空格
$str = "Hello Friend";这里测试加空格能一样么?
var_dump(str_split(''));//没有空格,连在一起的'',你测试看看,输出什么
var_dump(str_split(''));
输出:
array(1) { [0]=> string(0) "" }
//
//这个是我测试的结果:源代码贴出来了
Array ( [0] => v [1] => v [2] => [3] => v [4] => v )
0v
1v
2
3v
4v
姓名:vv vv//应该在姓名前写下 “space”提示的 结果没有
姓名:<input type="text" name="name"/>
//1.php
$name=trim($_POST["name"]);
checkit($name);
function checkit($a){
$b=str_split($a);//拆分字符串,存为数组
print_r($b);
echo "<br/>";
for($i=0;$i<count($b);$i++){//count计算数组,strlen计算字符串
echo $i;
echo $b[$i];
echo "<br/>";
if($b[i]==" ")//。
{
echo $b[i];
echo "space";
break;
}
}
}
我的要求是 检测姓名 有空格的时候 提示space
没看懂你的意思
大家可以试下 我也很纳闷 为何不能比较
{
echo $b;
echo "space";
break;
} 你顶楼给出的代码,传过去的name,只能是空字符串
看我说的对不对
$b=str_split($a);//
这样的话 空格此时存到数组里面 其实就成为了 空字符
。。所以 比较的时候 if($b[i]==" ")
是不对的 应为 空字符 不是空格
应为 if($b[i]=="")
这样就对了
俺不懂PHP,但在C中应该用单引号来表示一个字符。字符和字符串不能比较。PHP可以吗?那结果应该是不等吧。
这个地方 获取空格的时候 其实也就转成了字符串
空格也成了空字符
if($b[i]=="")
这样之后,一直都有space
$name=trim($_POST["name"]);
checkit($name);
function checkit($a){
$b=str_split($a);//拆分字符串,存为数组
print_R($b);//可显示有空格的值
echo "<br/>";
for($i=0;$i<count($b);$i++){
echo $i;
echo $b[$i];//可输出空格
echo "<br/>";
if($b[$i]==" ")//但是无法验证空格
{
echo $b[$i];
echo "space";
break;
}
}
}
晕 我的错
if($b[$i]==" ") 我写成了if($b[i]==" ")
谢谢 结帖了