2013-05-26 40 views
3

我最近一直在玩HHVM。通過很多麻煩讓我的電腦工作。我知道並非所有的PHP功能都可用。作爲一個測試,我寫了一個使用它的新網站,而不是使用我當前的代碼。嘗試使用時遇到問題在使用HHVM時,是否有替代php中的「filter_var」函數?

filter_var($var,FILTER_SANITIZE_URL); 

從error.log文件中可知,該函數未定義。 filter_var函數不可用於HHVM,或者我只是在這裏做錯了什麼。我喜歡讓事情幹,這意味着我必須做比我預期的更多的驗證。

+0

這似乎是在php => 5.2基於http://php.net/manual/en/function.filter-var.php的標準設備。你正在運行什麼版本? – Orangepill

+1

但我使用HHVM(HipHop虛擬機),我不認爲我的PHP版本真的有所作爲,因爲我的代碼不是由PHP解釋器解釋。 (或者至少這就是我的想法。) – Touch

+1

只有它看起來像filter_var在facebook沒有移植到HHVM(由於複雜性)/ http://comments.gmane.org/gmane功能的短列表上。 science.linguistics.wikipedia.technical/70038 – Orangepill

回答

6

filter_var現在在hhvm中實現。如果您有任何問題,請打開github問題。

1

這個功能似乎尚未對HHVM實現見http://comments.gmane.org/gmane.science.linguistics.wikipedia.technical/70038

一個選項,如果你想依靠與希望這個功能,它會進入褶皺是填充工具它(部分實現,激發了動機)。

if (!function_exists("filter_var")){ 
     // define the constants used by the function 
     define("FILTER_VALIDATE_EMAIL", "email"); 

     function filter_var(){ 
      $args = func_get_args(); 
      // $args[1] is the filter type (second parameter) 
      switch ($args[1]){ 
       case FILTER_VALIDATE_EMAIL: 
        if (preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $args[0])?$args[0]:false; 
        break; 
      } 
     } 
}