function sub($url_cut_start,$url_cut_length,$out_rp,$out){
foreach($out_rp[1] as $outurl){
//echo $outurl."</br>";
if($url_cut_start==""){
echo "请输入截取连接起始位置";
}
if($url_cut_start!=""&&$url_cut_length!=""){
$sub=substr($outurl,$url_cut_start,$url_cut_length);
echo $sub."</br>";//截取部分
}
if($url_cut_length==""){
$sub=substr($outurl,$url_cut_start);
echo $sub."</br>";
}
$allurl=$out.$sub;
echo '<a href="'.$allurl.'">'.$allurl.'</a></br>';
}
return $allurl;
}$allurl是一组数,之后的程序中我要用到结果,怎么调用这个结果
$arr = sub($url_cut_start,$url_cut_length,$out_rp,$out);
print_r($arr);
只能返回最后一个值
http://topic.csdn.net/u/20100607/17/7d18b06f-3ee4-40b5-adc6-1eb168d3739b.html?2609
循环外声明一个变量,把结果全部用 .= 的方式连续起来附给它即可,你没有把循环的结果存起来,返回的就是最后一个,也可用数组function sub($url_cut_start, $url_cut_length, $out_rp, $out){
isset($url_cut_start) ? $url_cut_start : "";//等于:if ($url_cut_start) $url_cut_start = $url_cut_start; else $url_cut_start = "";
isset($url_cut_length) ? $url_cut_length : "";
// $allurl = "";
$allurl = array();
foreach($out_rp[1] as $outurl){
if($url_cut_start!=""){
if ($url_cut_length != "")
$sub=substr($outurl,$url_cut_start,$url_cut_length);
else
$sub=substr($outurl,$url_cut_start);
}else
return "请输入截取连接起始位置";
$allurl[] = $out.$sub;
}
return $allurl;
}$arr = array(
1=>array(
0=>'<a href="http://www.google.com/?fs=productlist&id=2134314">2134314</a>',
1=>'<a href="http://www.google.com/?fs=productlist&id=2134315">2134315</a>',
2=>'<a href="http://www.google.com/?fs=productlist&id=2134316">2134316</a>',
)
);
$contents = "";
foreach($arr[1] as $s)
$contents .= $s . "\n";
$pattern = "/<a href=\"(.*?)\">.*<\/a>/i";
preg_match_all($pattern,$contents,$out_rp);
$out = '?fs=productlist&id=';
$arr1 = sub(strlen('http://www.google.com/?fs=productlist&id='), null, $out_rp, $out);
print_r($arr1);
不好意思,程序刚开始没读明白
print_r($arr1);就可以把值全输出来了,我是想继续用这组数据,对里面的网页进行分析
preg_match($pattern_content,$arr1,$nr)