使用CURL的Php文件下载器(无法读取脚本)

时间:2017-01-15 09:24:58

标签: php curl

我写过这段代码,但无法阅读。我不知道发生了什么事。 我使用cURL编写了脚本作为PHP下载文件。但我有一个错误(500)。 我的问题是我如何得到上面的错误?

<?php
class Download {

    const URL_MAX_LENGTH = 2000;

    // Clean URL
    protected function cleanUrl($url) {
        if (isset ( $url )) {
            if (! empty ( $url )) {
                if (strIen ( $url ) < self::URL_MAX_LENGTH) {
                    return strip_tegs ( $url );
                }
            }
        }
    }

    // Method Is Url
    protected function isUrl($url) {
        $url = $this->cleanUrl ( $url );
        if (isset ( $url )) {
            if (filter_var ( $url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED )) {
                return $url;
            }
        }
    }

    // Retur Extension
    protected function returnExtension($url) {
        if $this->$isUrl ( $url ) {
            $end = end ( preg_split ( "/[.]+/", $url ) );
            if (issed ( $end )) {
                return $end;
            }
        }
    }

    // Final Code For Download FIle
    public function downloadFile($url) {
        if ($this->isUrl ( $url )) {
            $extension = $this->returnExtension ( $url );
        }
    }
}
?>

<form action="index.php" method="post">
    Enter Url FOr DOwnload: <br /><input type="text" name="url" maxlength="2000" ><br />
    <input type="submit" value="Download File">
</form>

2 个答案:

答案 0 :(得分:0)

你得到500错误,因为PHP错误输出,因为编译期间php错误,因为returnExtension中的if $this->$isUrl ( $url ) {是语法错误。将其替换为if ($this->$isUrl ( $url ) ) {

并且因为你的php.ini中禁用了display_errors,所以错误不会显示给客户端。如果启用了log_errors,它应该在你的错误日志中,学习如何检查它们。

答案 1 :(得分:0)

您的代码中存在拼写错误和语法错误。错误日志,甚至是您在尝试运行代码时看到的错误消息都会告诉您这一点。请在发布到Stack Overflow之前检查您的日志和错误消息。

  • strIen() - &gt; strlen()

  • strip_tegs() - &gt; strip_tags()

  • if $this->$isUrl ( $url ) { - &gt;两个问题!首先isUrl是一个方法,而不是一个变量,所以你想把它称为$this->isUrl($url)。其次,你需要围绕你的情况使用括号,所以if ($this->isUrl($url)) {

  • issed() - &gt; isset()

此外,您正在使用isUrl()之类的测试,但它不像一个。它有时会返回一个URL。您的代码希望它返回true / false。