javascript - 下载不同名称的html页面

标签 javascript php

我需要帮助才能使用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/

相关文章:

javascript - 使用javascript打印用户的IP地址

javascript - 将焦点转移到 keydown - 仅 JavaScript - 无 jQuery

php - 如何在甜蜜警报中使用日期时间选择器?

php - 使用 Laravel 4 验证多个文件上传

php - 插入用户在MYSQL中创建的多个选项卡的数据

javascript - 如何在页面未完全加载时显示正在加载的 gif

javascript - activeTab.url Safari 扩展

javascript - 如果 var 为空,如何 trim 变量而不出错?

php - AJAX MySQL 更改输入值

PHP/Javascript : Variable Swapping & Function calling