我需要帮助才能使用php脚本
从互联网下载网页。但现在我有一个正在从互联网下载网页的脚本。但它正在下载始终具有相同名称的网页,例如index.html名称。
我想下载 url 中带有自己名称的网页。例如使用 aboutus.html 下载 aboutus 页面
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="post">
<input name="url" size="50" placeholder="URL" />
<input name="submit" type="submit" />
</form>
</body>
</html>
<?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (isset($_POST['submit'])) {
$url = parse_url($_POST['url']);
$folder = $url['host'];
if (array_key_exists('path', $url)) {
$file = explode('.', str_replace('/', '', $url['path']));
$file .= '.html';
} else {
$file = 'index.html';
}
if (!sizeOf(glob($folder))) {
mkdir($folder);
}
file_put_contents($folder . '/' . $file, fopen($_POST['url'], 'r'));
}
?>
最佳答案
试试这个:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="post">
<input name="url" size="50" placeholder="URL" />
<input name="submit" type="submit" />
</form>
</body>
</html>
<?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
function get_title($url){
$str = file_get_contents($url);
if(strlen($str)>0){
libxml_use_internal_errors(true);
$dom = new DOMDocument;
$dom->loadHTML($str);
$title = $dom->getElementsByTagName( "title" );
$titleText = 'index';
if($title && $title->length){
$titleText = $title[0]->textContent;
}
libxml_use_internal_errors(false);
return $titleText;
}
}
if (isset($_POST['submit'])) {
$url = parse_url($_POST['url']);
$folder = $url['host'];
if (array_key_exists('path', $url)) {
$file = get_title($_POST['url']);
$file .= '.html';
} else {
$file = 'index.html';
}
if (!sizeOf(glob($folder))) {
mkdir($folder);
}
file_put_contents($folder . '/' . $file, fopen($_POST['url'], 'r'));
}
?>
关于javascript - 下载不同名称的html页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35693012/