2014-04-28 110 views
2

parse_ini_file()是否有其他選擇?這真的很危險嗎?是禁用它的一個很好的理由,或者我可以以某種方式說服管理員確保它的安全嗎?由於安全原因,parse_ini_file()已被禁用 - 替代方法?

parse_ini_file() has been disabled for security reasons 

還有我發現這個錯誤是什麼意思

error description

我在代碼中使用(有一些misspeling問題,但它的解決,在一個託管,但在另一個運行良好不,casuse禁用該功能)
my code

+1

http://tr2.php.net/manual/en/function.parse-ini-file.php#57075 - 或j ust搜索該頁面的「替換」。 – Prisoner

回答

4

老實說,我不能找到一個合理的理由來禁用該功能,但如果parse_ini_string()我s可用,你也可以讀取文件,你應該有相同的功能(只是以更復雜的方式)。如果這不是一個選項或者,您可以:

  • 重寫二元函數在純PHP
  • 找到一個新的託管服務

無論是便宜你;-)

0

你可以使用更安全的功能:

function parse_ini_file_quotes_safe($f){ 
    $r=$null; 
    $sec=$null; 
    [email protected]($f); 
    for($i=0;$i<@count($f);$i++){ 
     $newsec=0; 
     [email protected]($f[$i]); 
     if($w){ 
     if((!$r) or ($sec)){ 
      if((@substr($w,0,1)=="[") and (@substr($w,-1,1))=="]") {[email protected]($w,1,@strlen($w)-2);$newsec=1;} 
     } 
     if(!$newsec){ 
      [email protected]("=",$w);[email protected]($w[0]);unset($w[0]); $[email protected](@implode("=",$w)); 
      if((@substr($v,0,1)=="\"") and (@substr($v,-1,1)=="\"")) {[email protected]($v,1,@strlen($v)-2);} 
      if($sec) {$r[$sec][$k]=$v;} else {$r[$k]=$v;} 
     } 
     } 
    } 
    return $r; 
} 
相關問題