我的代码:大家可运行下$url="http://bbs.yam.com/bin/dir?gid=317&type=0"; $array_base=array();//存储大类URL $num_base=0;//大类数组大小 $array_child=array();//存储子类URL $num_child=0;//子类数组大小 add_base($url); //将此URL下所有大类收集进数组$array_base function add_base($base_url) { global $array_base;//存储大类URL global $num_base;//大类数组大小 global $array_child;//存储子类URL global $num_child;//子类数组大小
$fp = fopen($url,"r"); //这样打不开?
$array_base=array();//存储大类URL
$num_base=0;//大类数组大小
$array_child=array();//存储子类URL
$num_child=0;//子类数组大小
add_base($url);
//将此URL下所有大类收集进数组$array_base
function add_base($base_url)
{
global $array_base;//存储大类URL
global $num_base;//大类数组大小
global $array_child;//存储子类URL
global $num_child;//子类数组大小
$fp = fopen ($base_url, "r"); while( $buffer = fgets($fp, 4096))
{
$html= nl2br(htmlentities($buffer));
$split="/bin/dir";
$query="http://bbs.yam.com/bin/dir";
if ( count($split) <1 )
{
continue;
}
$array=explode($split,$html);
$array=explode(""",$array[1]);
if ( !in_array($query.$array[0],$array_base) && $array[0] != "" )
{
$type=explode("=",$array[0]);
if ( $type[2] == 0 )
{
$array_base[$num_base]=$query.$array[0];//压入数组
$num_base++;
}
else
{
$array_child[$num_child]=$query.$array[0];//压入数组
$num_child++;
}
}
} fclose ($fp); } echo count($array_base)."是大类的数组大小,循环里面的URL再收集<br>"; echo $array_base[0]."<br>";//这句输出的URL是对的,但下面的fopen切没有打开
$uu=$array_base[0];
$fpc = fopen ($uu, "r");
echo $fpc;//输出是空的
while( $buffer = fgets($fpc, 4096))
{
$html= nl2br(htmlentities($buffer));
$split="/bin/dir";
$query="http://bbs.yam.com/bin/dir";
if ( count($split) <1 )
{
continue;
}
$array=explode($split,$html);
$array=explode(""",$array[1]);
if ( !in_array($query.$array[0],$array_base) && $array[0] != "" )
{
$type=explode("=",$array[0]);
if ( $type[2] == 0 )
{
$array_base[$num_base]=$query.$array[0];//压入数组
$num_base++;
add_base($query.$array[0]);
}
else
{
$array_child[$num_child]=$query.$array[0];//压入数组
$num_child++;
}
}
} fclose ($fpc);
我的URL保存在数组里,我输出这个数组里的URL是正确的,但我把这数组值放fopen时切不能打开,放非数组的切可以。
http://bbs.yam.com/bin/dir?gid=318&type=0
是不对的
&因该是&