|
我是用的 CodeIgniter 写一个小偷主要是为了地址友好,其中用正则匹配所有相同内容时出现错误提示
-
- A PHP Error was encountered
- Severity: Notice
- Message: Array to string conversion
复制代码
函数本身是这样的:
PHP复制代码
function Cutstr ($sptag,$areaRule,$html,$regex=true,$model=true)
{
//用正则表达式的模式匹配多个相同项
if($regex === true)
{
$areaRule = str_replace("/","[url=]\\/",$areaRule[/url ]);
$areaRules = explode($sptag,$areaRule);
$arr = array();
if($html==''||$areaRules[0]=='')
{
return '';
}
if($model===true)
{
preg_match_all("/".$areaRules[0]."(.*)".$areaRules[1]."/isU",$html,$arr);
}else{
preg_match("/".$areaRules[0]."(.*)".$areaRules[1]."/isU",$html,$arr);
}
return empty($arr[1]) ? '' : trim($arr[1]);
//return implode(",", $arr[1]);
}
else //用字符串模式匹配
{
$areaRules = explode($sptag,$areaRule);
if($html=='' || $areaRules[0]=='')
{
return '';
}
$posstart = @strpos($html,$areaRules[0]);
if($posstart===false)
{
return '';
}
$posend = @strpos($html,$areaRules[1],$posstart);
if($posend > $posstart && $posend!==false)
{
return substr($html,$posstart+strlen($areaRules[0]),$posend-$posstart-strlen($areaRules[0]));
}
else
{
return '';
}
}
}
复制代码
基中用到preg_match_all匹配的时候输出的数组只有转换成字符串也就是这样
PHP复制代码
//return implode(",", $arr[1]);
复制代码
才能用,不能直接读取循环数组这是为什么?
如果我直接在程序中写一个
这个时候又是正常的,可是放到函数里就出错我搞不明白,大家知道的说一下原因啊,谢谢 |
|