2010-05-02 51 views
4

獲取遠程內容的工作這是我關於這個問題的代碼:md5_file()不與URL

$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()); 

      } 

而且它會檢查所有的URL只是罰款,直至到達一個與IP而不是域,例如如:

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

其中,再次,腳本然後就加載了一下,然後停止。

任何幫助將不勝感激,如果你需要更多的信息只是問。

編輯:這似乎與一些IP的工作,而不是其他

+0

你試圖完成的所有這些url哈希值是什麼意思,在每一步都發生了什麼? – 2010-05-02 18:24:13

+0

嘗試刪除@以便您可以看到是否發生了任何錯誤。 – Reece45 2010-05-02 18:28:33

回答

7

我認爲md5_file本地文件只工作。該文檔當然不會提及請求或任何內容。如果您手動獲取文件,則可以使用md5來計算文檔的散列。試着給它一個旋轉。

<?php 

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

    echo $md5file; 

?> 
+0

它可以很好地處理遠程文件,它可以處理任何我輸入的URL,除了IP。謝謝你。 – Rob 2010-05-02 18:26:22

+0

然後,再試一次,如果有什麼可以看看它的md5_file()是否會造成問題,那就試一試。給我一點時間 – Rob 2010-05-02 18:28:15

+0

好吧,雖然這並沒有解決問題,但它確實幫助我認識到它不是功能的問題。我試圖使用cURL甚至l,,似乎它只是超時。這很奇怪,但呃,那麼不同的問題。謝謝您的幫助。並且爲了將來的參考,因爲它總是很好學習新事物,md5_file()** DOES **可以與遠程文件一起工作。 – Rob 2010-05-02 18:38:28