php中递归函数的问题
为什么输出是e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3而不是mp3啊?我想要的结果是mp3。<?phpfunctiongetect($file_na...
为什么输出是e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3
而不是mp3啊 ?
我想要的结果是 mp3。
<?php
function getect($file_name)
{
$pos=strpos($file_name,".");
$ect=$file_name;
if($pos!=false)
{
$ect=substr(strstr($file_name,"."),1);
getect($ect);
}
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?> 展开
而不是mp3啊 ?
我想要的结果是 mp3。
<?php
function getect($file_name)
{
$pos=strpos($file_name,".");
$ect=$file_name;
if($pos!=false)
{
$ect=substr(strstr($file_name,"."),1);
getect($ect);
}
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?> 展开
2个回答
展开全部
你的程序应该修改为:
<?php
function getect($file_name)
{
$pos=strpos($file_name,".");
if($pos!=false)
{
$ect=getect(substr($file_name,$pos+1));
} else $ect=$file_name;
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?>
以上代码测试通过。
不过你这样的需求应该使用strrpos函数,这样根本无需递归,直接就可以得出结果,调试通过的代码如下:
<?php
function getect($file_name)
{
$pos=strrpos($file_name,".");
if($pos!=false) $ect=(substr($file_name,$pos+1));
else $ect="";
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?>
<?php
function getect($file_name)
{
$pos=strpos($file_name,".");
if($pos!=false)
{
$ect=getect(substr($file_name,$pos+1));
} else $ect=$file_name;
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?>
以上代码测试通过。
不过你这样的需求应该使用strrpos函数,这样根本无需递归,直接就可以得出结果,调试通过的代码如下:
<?php
function getect($file_name)
{
$pos=strrpos($file_name,".");
if($pos!=false) $ect=(substr($file_name,$pos+1));
else $ect="";
return $ect;
}
echo getect("q1.e2.q52.5ewq.qd.fds5.gsd2.1.1.mp3");
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询