搜索
首页后端开发php教程(转)php抓取网页内容集锦

(转)php抓取网页内容汇总

①、使用php获取网页内容
http://hi.baidu.com/quqiufeng/blog/item/7e86fb3f40b598c67d1e7150.html
header("Content-type: text/html; charset=utf-8");
1、
$xhr = new COM("MSXML2.XMLHTTP");
$xhr->open("GET","http://localhost/xxx.php?id=2",false);
$xhr->send();
echo $xhr->responseText

2、file_get_contents实现
$url="http://www.blogjava.net/pts";
echo file_get_contents( $url );
?>

3、fopen()实现

if ($stream = fopen('http://www.sohu.com', 'r')) {
??? // print all the page starting at the offset 10
??? echo stream_get_contents($stream, -1, 10);
??? fclose($stream);
}

if ($stream = fopen('http://www.sohu.net', 'r')) {
??? // print the first 5 bytes
??? echo stream_get_contents($stream, 5);
??? fclose($stream);
}
?>

②、使用php获取网页内容
http://www.blogjava.net/pts/archive/2007/08/26/99188.html
简单的做法:
$url="http://www.blogjava.net/pts";
echo file_get_contents( $url );
?>
或者:

if ($stream = fopen('http://www.sohu.com', 'r')) {
??? // print all the page starting at the offset 10
??? echo stream_get_contents($stream, -1, 10);
??? fclose($stream);
}

if ($stream = fopen('http://www.sohu.net', 'r')) {
??? // print the first 5 bytes
??? echo stream_get_contents($stream, 5);
??? fclose($stream);
}
?>

③、PHP获取网站内容,保存为TXT文件源码
http://blog.chinaunix.net/u1/44325/showart_348444.html

$my_book_url='http://book.yunxiaoge.com/files/article/html/4/4550/index.html';
ereg("http://book.yunxiaoge.com/files/article/html/[0-9]+/[0-9]+/",$my_book_url,$myBook);
$my_book_txt=$myBook[0];
$file_handle = fopen($my_book_url, "r");//读取文件
unlink("test.txt");
while (!feof($file_handle)) { //循环到文件结束
??? $line = fgets($file_handle); //读取一行文件
??? $line1=ereg("href=\"[0-9]+.html",$line,$reg); //分析文件内部书的文章页面
?????? $handle = fopen("test.txt", 'a');
?? if ($line1) {
???? $my_book_txt_url=$reg[0]; //另外赋值,给抓取分析做准备
?? $my_book_txt_url=str_replace("href=\"","",$my_book_txt_url);
????? $my_book_txt_over_url="$my_book_txt$my_book_txt_url"; //转换为抓取地址
????? echo "$my_book_txt_over_url

"; //显示工作状态
????? $file_handle_txt = fopen($my_book_txt_over_url, "r"); //读取转换后的抓取地址
????? while (!feof($file_handle_txt)) {
?????? $line_txt = fgets($file_handle_txt);
?????? $line1=ereg("^ .+",$line_txt,$reg); //根据抓取内容标示抓取
?????? $my_over_txt=$reg[0];
?????? $my_over_txt=str_replace("    ","??? ",$my_over_txt); //过滤字符
?????? $my_over_txt=str_replace("
","",$my_over_txt);
?????? $my_over_txt=str_replace("","",$my_over_txt);
?????? $my_over_txt=str_replace(""","",$my_over_txt);
?????? if ($line1) {
???????? $handle1=fwrite($handle,"$my_over_txt\n"); //写入文件
?????? }
????? }
??? }
}
fclose($file_handle_txt);
fclose($handle);
fclose($file_handle); //关闭文件
echo "完成";
?>

下面是比较嚣张的方法。
这里使用一个名叫Snoopy的类。
先是在这里看到的:
PHP中获取网页内容的Snoopy
http://blog.declab.com/read.php/27.htm
然后是Snoopy的官网:
http://sourceforge.net/projects/snoopy/
这里有一些简单的说明:
代码收藏-Snoopy类及简单的使用方法
http://blog.passport86.com/?p=161
下载:http://sourceforge.net/projects/snoopy/


今天才发现这个好东西,赶紧去下载了来看看,是用的parse_url
还是比较习惯curl

snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
下面是它的一些特征:
1、方便抓取网页的内容
2、方便抓取网页的文字(去掉HTML代码)
3、方便抓取网页的链接
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies

具体使用请看下载文件中的说明。

includeSnoopy.class.php;
$snoopy=newSnoopy;
$snoopy->fetchform(http://www.phpx.com/happy/logging.php?action=login);
print$snoopy->results;
?>

includeSnoopy.class.php;
$snoopy=newSnoopy;
$submit_url=http://www.phpx.com/happy/logging.php?action=login;$submit_vars["loginmode"]=normal;
$submit_vars["styleid"]=1;
$submit_vars["cookietime"]=315360000;
$submit_vars["loginfield"]=username;
$submit_vars["username"]=********;//你的用户名
$submit_vars["password"]=*******;//你的密码
$submit_vars["questionid"]=0;
$submit_vars["answer"]=“”;
$submit_vars["loginsubmit"]=提   交;
$snoopy->submit($submit_url,$submit_vars);
print$snoopy->results;?>


下面是SnoopyReadme
NAME:

??? Snoopy - the PHP net client v1.2.4
???
SYNOPSIS:

??? include "Snoopy.class.php";
??? $snoopy = new Snoopy;
???
??? $snoopy->fetchtext("http://www.php.net/");
??? print $snoopy->results;
???
??? $snoopy->fetchlinks("http://www.phpbuilder.com/");
??? print $snoopy->results;
???
??? $submit_url = "http://lnk.ispi.net/texis/scripts/msearch/netsearch.html";
???
??? $submit_vars["q"] = "amiga";
??? $submit_vars["submit"] = "Search!";
??? $submit_vars["searchhost"] = "Altavista";
??? ???
??? $snoopy->submit($submit_url,$submit_vars);
??? print $snoopy->results;
???
??? $snoopy->maxframes=5;
??? $snoopy->fetch("http://www.ispi.net/");
??? echo "

\n";<br>??? echo htmlentities($snoopy->results[0]);<br>??? echo htmlentities($snoopy->results[1]);<br>??? echo htmlentities($snoopy->results[2]);<br>??? echo "
\n";

??? $snoopy->fetchform("http://www.altavista.com");
??? print $snoopy->results;

DESCRIPTION:

??? What is Snoopy?
???
??? Snoopy is a PHP class that simulates a web browser. It automates the
??? task of retrieving web page content and posting forms, for example.

??? Some of Snoopy's features:
???
??? * easily fetch the contents of a web page
??? * easily fetch the text from a web page (strip html tags)
??? * easily fetch the the links from a web page
??? * supports proxy hosts
??? * supports basic user/pass authentication
??? * supports setting user_agent, referer, cookies and header content
??? * supports browser redirects, and controlled depth of redirects
??? * expands fetched links to fully qualified URLs (default)
??? * easily submit form. data and retrieve the results
??? * supports following html frames (added v0.92)
??? * supports passing cookies on redirects (added v0.92)
???
???
REQUIREMENTS:

??? Snoopy requires PHP with PCRE (Perl Compatible Regular Expressions),
??? which should be PHP 3.0.9 and up. For read timeout support, it requires
??? PHP 4 Beta 4 or later. Snoopy was developed and tested with PHP 3.0.12.

CLASS METHODS:

??? fetch($URI)
??? -----------
???
??? This is the method used for fetching the contents of a web page.
??? $URI is the fully qualified URL of the page to fetch.
??? The results of the fetch are stored in $this->results.
??? If you are fetching frames, then $this->results
??? contains each frame. fetched in an array.
??? ???
??? fetchtext($URI)
??? ---------------???
???
??? This behaves exactly like fetch() except that it only returns
??? the text from the page, stripping out html tags and other
??? irrelevant data.??? ???

??? fetchform($URI)
??? ---------------???
???
??? This behaves exactly like fetch() except that it only returns
??? the form. elements from the page, stripping out html tags and other
??? irrelevant data.??? ???

??? fetchlinks($URI)
??? ----------------

??? This behaves exactly like fetch() except that it only returns
??? the links from the page. By default, relative links are
??? converted to their fully qualified URL form.

??? submit($URI,$formvars)
??? ----------------------
???
??? This submits a form. to the specified $URI. $formvars is an
??? array of the form. variables to pass.
??? ???
??? ???
??? submittext($URI,$formvars)
??? --------------------------

??? This behaves exactly like submit() except that it only returns
??? the text from the page, stripping out html tags and other
??? irrelevant data.??? ???

??? submitlinks($URI)
??? ----------------

??? This behaves exactly like submit() except that it only returns
??? the links from the page. By default, relative links are
??? converted to their fully qualified URL form.


CLASS VARIABLES:??? (default value in parenthesis)

??? $host??? ??? ??? the host to connect to
??? $port??? ??? ??? the port to connect to
??? $proxy_host??? ??? the proxy host to use, if any
??? $proxy_port??? ??? the proxy port to use, if any
??? $agent??? ??? ??? the user agent to masqerade as (Snoopy v0.1)
??? $referer??? ??? referer information to pass, if any
??? $cookies??? ??? cookies to pass if any
??? $rawheaders??? ??? other header info to pass, if any
??? $maxredirs??? ??? maximum redirects to allow. 0=none allowed. (5)
??? $offsiteok??? ??? whether or not to allow redirects off-site. (true)
??? $expandlinks??? whether or not to expand links to fully qualified URLs (true)
??? $user??? ??? ??? authentication username, if any
??? $pass??? ??? ??? authentication password, if any
??? $accept??? ??? ??? http accept types (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
??? $error??? ??? ??? where errors are sent, if any
??? $response_code??? responde code returned from server
??? $headers??? ??? headers returned from server
??? $maxlength??? ??? max return data length
??? $read_timeout??? timeout on read operations (requires PHP 4 Beta 4+)
??? ??? ??? ??? ??? set to 0 to disallow timeouts
??? $timed_out??? ??? true if a read operation timed out (requires PHP 4 Beta 4+)
??? $maxframes??? ??? number of frames we will follow
??? $status??? ??? ??? http status of fetch
??? $temp_dir??? ??? temp directory that the webserver can write to. (/tmp)
??? $curl_path??? ??? system path to cURL binary, set to false if none
???

EXAMPLES:

??? Example: ??? fetch a web page and display the return headers and
??? ??? ??? ??? the contents of the page (html-escaped):
???
??? include "Snoopy.class.php";
??? $snoopy = new Snoopy;
???
??? $snoopy->user = "joe";
??? $snoopy->pass = "bloe";
???
??? if($snoopy->fetch("http://www.slashdot.org/"))
??? {
??? ??? echo "response code: ".$snoopy->response_code."
\n";
??? ??? while(list($key,$val) = each($snoopy->headers))
??? ??? ??? echo $key.": ".$val."
\n";
??? ??? echo "

\n";
??? ???
??? ??? echo "

".htmlspecialchars($snoopy->results)."
\n";
??? }
??? else
??? ??? echo "error fetching document: ".$snoopy->error."\n";



??? Example:??? submit a form. and print out the result headers
??? ??? ??? ??? and html-escaped page:

??? include "Snoopy.class.php";
??? $snoopy = new Snoopy;
???
??? $submit_url = "http://lnk.ispi.net/texis/scripts/msearch/netsearch.html";
???
??? $submit_vars["q"] = "amiga";
??? $submit_vars["submit"] = "Search!";
??? $submit_vars["searchhost"] = "Altavista";

??? ???
??? if($snoopy->submit($submit_url,$submit_vars))
??? {
??? ??? while(list($key,$val) = each($snoopy->headers))
??? ??? ??? echo $key.": ".$val."
\n";
??? ??? echo "

\n";
??? ???
??? ??? echo "

".htmlspecialchars($snoopy->results)."
\n";
??? }
??? else
??? ??? echo "error fetching document: ".$snoopy->error."\n";



??? Example:??? showing functionality of all the variables:
???

??? include "Snoopy.class.php";
??? $snoopy = new Snoopy;

??? $snoopy->proxy_host = "my.proxy.host";
??? $snoopy->proxy_port = "8080";
???
??? $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
??? $snoopy->referer = "http://www.microsnot.com/";
???
??? $snoopy->cookies["SessionID"] = 238472834723489l;
??? $snoopy->cookies["favoriteColor"] = "RED";
???
??? $snoopy->rawheaders["Pragma"] = "no-cache";
???
??? $snoopy->maxredirs = 2;
??? $snoopy->offsiteok = false;
??? $snoopy->expandlinks = false;
???
??? $snoopy->user = "joe";
??? $snoopy->pass = "bloe";
???
??? if($snoopy->fetchtext("http://www.phpbuilder.com"))
??? {
??? ??? while(list($key,$val) = each($snoopy->headers))
??? ??? ??? echo $key.": ".$val."
\n";
??? ??? echo "

\n";
??? ???
??? ??? echo "

".htmlspecialchars($snoopy->results)."
\n";
??? }
??? else
??? ??? echo "error fetching document: ".$snoopy->error."\n";


??? Example: ??? fetched framed content and display the results
???
??? include "Snoopy.class.php";
??? $snoopy = new Snoopy;
???
??? $snoopy->maxframes = 5;
???
??? if($snoopy->fetch("http://www.ispi.net/"))
??? {
??? ??? echo "
".htmlspecialchars($snoopy->results[0])."
\n";
??? ??? echo "
".htmlspecialchars($snoopy->results[1])."
\n";
??? ??? echo "
".htmlspecialchars($snoopy->results[2])."
\n";
??? }
??? else
??? ??? echo "error fetching document: ".$snoopy->error."\n";

?

?

<?php //获取所有内容url保存到文件function get_index($save_file, $prefix="index_"){    $count = 68;    $i = 1;    if (file_exists($save_file)) @unlink($save_file);    $fp = fopen($save_file, "a+") or die("Open ". $save_file ." failed");    while($i<$count){        $url = $prefix . $i .".htm";        echo "Get ". $url ."...";        $url_str = get_content_url(get_url($url));        echo " OKn";        fwrite($fp, $url_str);        ++$i;    }    fclose($fp);}//获取目标多媒体对象function get_object($url_file, $save_file, $split="|--:**:--|"){    if (!file_exists($url_file)) die($url_file ." not exist");    $file_arr = file($url_file);    if (!is_array($file_arr) || empty($file_arr)) die($url_file ." not content");    $url_arr = array_unique($file_arr);    if (file_exists($save_file)) @unlink($save_file);    $fp = fopen($save_file, "a+") or die("Open save file ". $save_file ." failed");    foreach($url_arr as $url){        if (empty($url)) continue;        echo "Get ". $url ."...";        $html_str = get_url($url);        echo $html_str;        echo $url;        exit;        $obj_str = get_content_object($html_str);        echo " OKn";        fwrite($fp, $obj_str);    }    fclose($fp);}//遍历目录获取文件内容function get_dir($save_file, $dir){    $dp = opendir($dir);    if (file_exists($save_file)) @unlink($save_file);    $fp = fopen($save_file, "a+") or die("Open save file ". $save_file ." failed");    while(($file = readdir($dp)) != false){        if ($file!="." && $file!=".."){            echo "Read file ". $file ."...";            $file_content = file_get_contents($dir . $file);            $obj_str = get_content_object($file_content);            echo " OKn";            fwrite($fp, $obj_str);        }    }    fclose($fp);}//获取指定url内容function get_url($url){    $reg = '/^http://[^/].+$/';    if (!preg_match($reg, $url)) die($url ." invalid");    $fp = fopen($url, "r") or die("Open url: ". $url ." failed.");    while($fc = fread($fp, 8192)){        $content .= $fc;    }    fclose($fp);    if (empty($content)){        die("Get url: ". $url ." content failed.");    }    return $content;}//使用socket获取指定网页function get_content_by_socket($url, $host){    $fp = fsockopen($host, 80) or die("Open ". $url ." failed");    $header = "GET /".$url ." HTTP/1.1rn";    $header .= "Accept: */*rn";    $header .= "Accept-Language: zh-cnrn";    $header .= "Accept-Encoding: gzip, deflatern";    $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; InfoPath.1; .NET CLR 2.0.50727)rn";    $header .= "Host: ". $host ."rn";    $header .= "Connection: Keep-Alivern";    //$header .= "Cookie: cnzz02=2; rtime=1; ltime=1148456424859; cnzz_eid=56601755-rnrn";    $header .= "Connection: Closernrn";    fwrite($fp, $header);    while (!feof($fp)) {        $contents .= fgets($fp, 8192);    }    fclose($fp);    return $contents;}//获取指定内容里的urlfunction get_content_url($host_url, $file_contents){    //$reg = '/^(#|javascript.*?|ftp://.+|http://.+|.*?href.*?|play.*?|index.*?|.*?asp)+$/i';    //$reg = '/^(down.*?.html|d+_d+.htm.*?)$/i';    $rex = "/([hH][rR][eE][Ff])s*=s*['"]*([^>'"s]+)["'>]*s*/i";    $reg = '/^(down.*?.html)$/i';    preg_match_all ($rex, $file_contents, $r);    $result = ""; //array();    foreach($r as $c){        if (is_array($c)){            foreach($c as $d){                if (preg_match($reg, $d)){ $result .= $host_url . $d."n"; }            }        }    }    return $result;}//获取指定内容中的多媒体文件function get_content_object($str, $split="|--:**:--|"){        $regx = "/hrefs*=s*['"]*([^>'"s]+)["'>]*s*(<b>.*?</b>)/i";    preg_match_all($regx, $str, $result);    if (count($result) == 3){        $result[2] = str_replace("<b>多媒体: ", "", $result[2]);        $result[2] = str_replace("</b>", "", $result[2]);        $result = $result[1][0] . $split .$result[2][0] . "n";    }    return $result;}?> 

php抓取网页特定div区块及图片

(2009-06-05 09:56:23)
转载
标签:

php

抓取

图片

it

分类: PHP

1. 取得指定網頁內的所有圖片:

//取得指定位址的內容,並儲存至text
$text=file_get_contents('http://andy.diimii.com/');

//取得第一個img標籤,並儲存至陣列match(regex語法與上述同義)
preg_match('/(转)php抓取网页内容集锦]*>/Ui',$text, $match);

//印出match
print_r($match);
?>

-----------------
2. 取得指定網頁內的第一張圖片:

//取得指定位址的內容,並儲存至text
$text=file_get_contents('http://andy.diimii.com/');

//取得第一個img標籤,並儲存至陣列match(regex語法與上述同義)
preg_match('/(转)php抓取网页内容集锦]*>/Ui',$text, $match);

//印出match
print_r($match);
?>

------------------------------------


3. 取得指定網頁內的特定div區塊(藉由id判斷):

//取得指定位址的內容,並儲存至text
$text=file_get_contents('http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/');

//去除換行及空白字元(序列化內容才需使用)
//$text=str_replace(array("\r","\n","\t","\s"),'', $text);? ?

//取出div標籤且id為PostContent的內容,並儲存至陣列match
preg_match('/

]*id="PostContent"[^>]*>(.*?)/si',$text,$match);

//印出match[0]
print($match[0]);
?>

-------------------------------------------
4. 上述2及3的結合:

//取得指定位址的內容,並儲存至text
$text=file_get_contents('http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/');???

//取出div標籤且id為PostContent的內容,並儲存至陣列match
preg_match('/
]*id="PostContent"[^>]*>(.*?)/si',$text,$match);??

//取得第一個img標籤,並儲存至陣列match2
preg_

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

鸿蒙原生应用随机诗词鸿蒙原生应用随机诗词Feb 19, 2024 pm 01:36 PM

想了解更多关于开源的内容,请访问:51CTO鸿蒙开发者社区https://ost.51cto.com运行环境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、创建应用点击File->newFile->CreateProgect。选择模版:【OpenHarmony】EmptyAbility:填写项目名,shici,应用包名com.nut.shici,应用存储位置XXX(不要有中文,特殊字符,空格)。CompileSDK10,Model:Stage。Device

使用java的File.length()函数获取文件的大小使用java的File.length()函数获取文件的大小Jul 24, 2023 am 08:36 AM

使用Java的File.length()函数获取文件的大小文件大小是在处理文件操作时很常见的一个需求,Java提供了一个很方便的方法来获取文件的大小,即使用File类的length()方法。本文将介绍如何使用该方法来获取文件的大小,并给出相应的代码示例。首先,我们需要创建一个File对象来表示我们想要获取大小的文件。以下是创建File对象的方法:Filef

php blob怎么转filephp blob怎么转fileMar 16, 2023 am 10:47 AM

php blob转file的方法:1、创建一个php示例文件;2、通过“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法实现Blob转File即可。

使用java的File.renameTo()函数重命名文件使用java的File.renameTo()函数重命名文件Jul 25, 2023 pm 03:45 PM

使用Java的File.renameTo()函数重命名文件在Java编程中,我们经常需要对文件进行重命名的操作。Java提供了File类来处理文件操作,其中的renameTo()函数可以方便地重命名文件。本文将介绍如何使用Java的File.renameTo()函数来重命名文件,并提供相应的代码示例。File.renameTo()函数是File类的一个方法,

修复:截图工具在 Windows 11 中不起作用修复:截图工具在 Windows 11 中不起作用Aug 24, 2023 am 09:48 AM

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

使用java的File.getParentFile()函数获取文件的父目录使用java的File.getParentFile()函数获取文件的父目录Jul 27, 2023 am 11:45 AM

使用java的File.getParentFile()函数获取文件的父目录在Java编程中,我们经常需要操作文件和文件夹。当我们需要获取文件的父目录时,可以使用Java提供的File.getParentFile()函数来完成。本文将介绍如何使用这个函数并提供代码示例。Java中的File类是用于操作文件和文件夹的主要类。它提供了许多方法来获取和操作文件的属性

使用java的File.getParent()函数获取文件的父路径使用java的File.getParent()函数获取文件的父路径Jul 24, 2023 pm 01:40 PM

使用java的File.getParent()函数获取文件的父路径在Java编程中,我们经常需要操作文件和文件夹。有时候,我们需要获取一个文件的父路径,也就是该文件所在文件夹的路径。Java的File类提供了getParent()方法用于获取文件或文件夹的父路径。File类是Java对文件和文件夹的抽象表示,它提供了一系列操作文件和文件夹的方法。其中,get

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器