&$value ) {
if ($value == '..') {
for($i = $key - 1; $i > - 1; $i --) {
if (! empty ( $arrUri [$i] )) {
$arrUri [$i] = '';
break;
}
}
$value = '';
}
}
$arrUri = array_flip ( array_flip ( $arrUri ) );
if (substr ( $uri, - 1, 1 ) == '/')
array_push ( $arrUri, '' );
$arrUrlCurrent ['path'] = implode ( $pathSeparator, $arrUri );
return $arrUrlCurrent;
}
/*合并由parse_url分析的数组(没有考虑用户名密码)*/
function parse_url_join($arr) {
$out = array ();
if (! empty ( $arr ['scheme'] )) {
array_push ( $out, $arr ['scheme'] . '://' );
}
if (! empty ( $arr ['host'] )) {
array_push ( $out, $arr ['host'] );
}
if (! empty ( $arr ['port'] )) {
array_push ( $out, ':' . $arr ['port'] );
}
if (! empty ( $arr ['path'] )) {
array_push ( $out, $arr ['path'] );
}
if (! empty ( $arr ['query'] )) {
array_push ( $out, '?' . $arr ['query'] );
}
if (! empty ( $arr ['fragment'] )) {
array_push ( $out, '#' . $arr ['fragment'] );
}
return implode ( '', $out );
}
////输出:http://www.haihun.cn/ddd/
//echo parse_url_join(parse_uri('/blog/../fuck/../../ddd/bbb/../','http://www.sman.cn/')),'
';
//
////输出:http://www.1344.cn/blog
//echo parse_url_join(parse_uri('blog/','http://www.sman.cn/')),'
';
//
////输出:http://www.sman.cn/dd/index.asp
//echo parse_url_join(parse_uri('../dd/./index.asp','http://www.sman.cn/blog/')),'
';
//
////输出:http://www.sman.cn/fuck/1.asp
//echo parse_url_join(parse_uri('1.asp','http://www.sman.cn/blog/../fuck/')),'
';
/*******************************************/
function my_substr($a, $b) {
$a = explode ( $b, $a );
return $a ['0'];
}
$css_url = $_POST ['css']; //远程从上述文件地址
$save_dir = empty ( $_POST ['save_dir'] ) ? "download" : $_POST ['save_dir'];
if (! empty ( $css_url )) {
$save_dir = dirname ( __FILE__ ) . "\\" . $save_dir;
set_time_limit ( 0 );
$cssfile = file_get_contents ( $css_url );
preg_match_all ( "/url\((.*)\)/", $cssfile, $imgurls );
$imgurls = array_unique ( $imgurls [1] );
foreach ( $imgurls as $img ) {
$file_name = my_substr ( basename ( $img ), ')' ); //获取文件名字
$img_src = parse_url_join ( parse_uri ( $img, $css_url ) ); //合成文件地址
$img_src = my_substr ( $img_src, ')' );
if (@$file_stream = file_get_contents ( $img_src )) {
if (! is_dir ( $save_dir )) {
mkdir ( $save_dir );
}
$file_path = my_substr ( $save_dir . "\\" . $file_name, '?' );
if (! file_put_contents ( $file_path, $file_stream )) {
echo "
保存[" . $file_path . "]出错,请检查是否有写入权限!
";
} else {
//echo "

";
$dir = pathinfo ( $save_dir );
$success [] = $dir ['basename'] . "/" . $file_name;
}
} else {
//echo "
远程读取[" . $img_src . "]出错
";
$failure [] = $img_src;
}
}
if (! empty ( $success )) {
echo "
成功获取以下文件,并保存至( $save_dir )
";
foreach ( $success as $suc ) {
echo "

";
}
} else {
echo "
没有获取到任何图片地址!
";
}
echo "
";
if (! empty ( $failure )) {
foreach ( $failure as $fai ) {
echo "
远程读取[" . $fai . "]出错
";
}
}
} else {
echo "
请先输入正确的CSS路径!
";
}
?>
最活跃的读者