4

質問に関連する私のコードは次のとおりです。

$theurl = trim($_POST['url']);
    $md5file = md5_file($theurl);
        if ($md5file != '96a0cec80eb773687ca28840ecc67ca1') { echo 'Hash doesn\'t match. Incorrect file. Reupload it and try again'; 

このスクリプトを実行しても、エラーは出力されません。止まるだけです。少しの間ロードされ、その後停止します。

スクリプトのさらに下で、もう一度実装しましたが、ここでも失敗します。

while($row=mysql_fetch_array($execquery, MYSQL_ASSOC)){

$hash = @md5_file($row['url']);

$url = $row['url'];

mysql_query("UPDATE urls SET hash='" . $hash . "' WHERE url='" . $url . "'") or die("There was a problem: ".mysql_error());

        if ($hash != '96a0cec80eb773687ca28840ecc67ca1'){
            $status = 'down';
            }else{
            $status = 'up';
            }
mysql_query("UPDATE urls SET status='" . $status . "' WHERE url='" . $url . "'") or die("There was a problem: ".mysql_error());

            }

そして、次のように、ドメインではなく IP を持つ URL に到達するまで、すべての URL を問題なくチェックします。

http://188.72.216.143/~waffle/udp.php

ここでも、スクリプトは少しだけロードされてから停止します。

さらに情報が必要な場合は、お問い合わせください。

編集: 一部の IP では動作するようですが、他の IP では動作しないようです

4

1 に答える 1

10

md5_fileローカルファイルでのみ機能すると思いました。ドキュメントには、リクエストなどについてはまったく言及されていません。ファイルを手動で取得する場合md5は、ドキュメントのハッシュを計算するために使用できます。ぐるぐる回してみてください。

<?php

    $contents = file_get_contents('http://stackoverflow.com');
    $md5file = md5($contents);

    echo $md5file;

?>
于 2010-05-02T18:25:18.777 に答える