strpos疑问,php高手进
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strpos疑问,php高手进相关的知识,希望对你有一定的参考价值。
主要是strpos的地方问题
我想做的循环截取开始结束部分的支付
这是我最后测试可以达到效果的:
while()
if(strpos($yuanma,$str1,$chaxunwz)!==false)
$pipeiwz=strpos($yuanma,$str1,$chaxunwz);
$chaxunwz=$pipeiwz+strlen($str1);
if($i==$biaojiks)$qiequks=$chaxunwz;
if($i==$biaojijs)$qiequjs=$pipeiwz;
达不到效果的,这个可能是无限循环了
while()
if(($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false)这个语句好像总成立,无限循环了
是不是($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false首先赋值给$pipeiwz,路过没有匹配,那$pipeiwz=false,应该不成立了,怎么这样的不行呢,我对语句的优先级不太熟悉
if(($pipeiwz=strpos($yuanma,$str1,$chaxunwz))>=0)总成立,谁能说下怎么回事呢
我用下面测试的表达式效果
$m=0;
if($m===false)echo 'm===false yes'; //全等,数值数据类型相等
else echo 'm===false no';//不成立
if($m==false)echo “m==false yes";//数值相等成立
else echo 'm==false no';
if(($pipeiwz=false)>=0)echo "pipeiwz=false大于0";//这个成立
这个($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false
路过取到位置是0,但数据类型不同,用!=就会不满足出错,导致一个匹配也没有
但有时行有时有问题,浏览器都完了
($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false 这句话 你说的正确
确实 是 先赋值给 $pipeiwz 我觉得不是 这个代码的问题吧。
------------------------------------------
if(($pipeiwz=strpos($yuanma,$str1,$chaxunwz))>=0)
这个 当然 总是成立的啊,
因为 strpos 找到了 返回值肯定是 >=0
如果没找到 就是 false
false >=0 是 成立的 因为 false == 0 就成立!
--------------------
if($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false) 看这个情况下
这个判断的是 如果有匹配 就成立 没有匹配就 不成立! 参考技术A !==false
改为true看.... 参考技术B 你都没有说清楚,while()这里要加条件了,不然if里要加个退出循环的语句,不然就死循环了。暂时只看出这么多 参考技术C 你的用法是没错的。但是我不清楚你的思路是什么,我们也看不到你的while循环到底是怎么样的,首先你要确定while不是死循环。
另外,
if(strpos($yuanma,$str1,$chaxunwz)!==false){
这里面是找到了需要的字符串后的执行的操作;
}
你要清楚strpos函数的用法:现在你就是想在 $yuanma 这个字符串中从 $chaxunwz 这个位置向后找 $str1 这个字符串 参考技术D 在 $yuanma 这个字符串中从 $chaxunwz 这个位置
php strpos 的注意事项,遇到的坑
######strpos()函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。
strpos(string,find,start)
参数 描述
string 必需。规定被搜索的字符串。 必须是字符串
find 必需。规定要查找的字符。find 必须是字符串。否则查不到。。靠。。
var_dump(strpos(',1828,','1828')); //int 1
var_dump(strpos(777182877,1828)); //bool(false) 本以为可以找到呢
var_dump(strpos(',1828,',1828)); //bool(false) 本以为可以找到呢
还有返回0,也是找到了。要注意。
总结:
1.注意参数位置 先haystack
2.区分大小写。
3.返回 注意0
4.注意全用字符串
以上是关于strpos疑问,php高手进的主要内容,如果未能解决你的问题,请参考以下文章