2012-09-07 12 views
-2

我不完全確定PHP的版本是什麼,但我認爲它是在5.2版本(XAMPP的相對較新版本)中。我建立了一個特定的站點,它很大程度上依賴於php函數hash_algos()來填充下拉列表,但似乎最近hash_algos()完全沒有返回結果。另外,如果XAMPP沒有提供,那麼使用Windows。我的PHP的hash_algos()函數不再有效

該網站曾經工作,但不再是,我不知道爲什麼,我沒有改變任何代碼。這裏是不工作的網站的一部分

<select name="method" id="method"> 
<? 
foreach(hash_algos() as $m) 
{ 
echo "<option value=\"".$m."\">".$m."</option>"; 
} 
?> 
</select> 
+0

PHP 5.2絕對不是比較新的。 – nickb

+1

@Praveen Kumar:http://php.net/hash_algos – zerkms

+0

「該網站無效」 - 無助。你沒有忘記打開你的服務器? – zerkms

回答

0

您需要啓用哈希PECL包。

這個問題可能是你有幫助:How to switch hash_algos() on ? I'm with Php 5.2.11

編輯:既然你在Windows上,你可能必須自己編制了「散列」包。它似乎是available on the PECL website but is no longer maintained

要從源代碼編譯,PHP有一個step by step guide

編譯完DLL或得到一個DLL之後,需要將它添加到你的php.ini文件中。

你需要添加一行類似如下:

extension=php_hash.dll 

更多信息,請訪問PHP's Windows site

+0

我看到,在搜索這個問題的過程中,雖然我無法弄清楚如何在Windows上啓用或安裝PECL。該線程似乎針對Linux。 – OffLuffy

+0

再次想到,我沒有看到之前的php.ini評論,我會嘗試找到那裏的東西。 – OffLuffy

+0

您需要擁有Hash包的DLL。我正在嘗試尋找它,但沒有運氣。你可以從源代碼編譯它。 http://pecl.php.net/package/hash似乎有源 – noko

0

你忘記

<?php ?> 

語法,因此

<html> 
    <head></head> 
    <body> 
     <select name="method" id="method"> 
      <?php 
       foreach(hash_algos() as $m) 
       { 
        echo "<option value=\"".$m."\">".$m."</option>"; 
       } 
      ?> 
     </select> 
    </body> 
</html> 

啓動服務器並運行。