2014-07-16 114 views
1

我試圖使用idn_to_ascii()函數與預先安裝的Max OSX 10.9.4(5.4.24)的PHP實例。intl和PHP 5.4.24在OSX 10.9

我讀了很多Stackoverflow的問題,他們中的大多數人都說:intl是自PHP 5.3開始預編譯的,不需要擴展,它可以直接使用。

但是爲什麼intl函數在這個PHP實例中不可用呢?我只是得到一個

Fatal error: Call to undefined function idn_to_ascii() in /path/test.php on line 3

此外,我與XAMPP 1.8.3-4用PHP的5.5.x試圖在OSX 10.9,我也得到

Fatal error: Call to undefined function idn_to_ascii() in /Applications/XAMPP/xamppfiles/htdocs/test.php on line 3

這是OSX的問題還是有兩個PHP實例的問題?

回答

1

intl是與PHP源代碼捆綁在一起,但必須使用--enable-intl編譯時選項啓用。這顯然不是這兩個PHP安裝的情況。您可以使用php -i | grep intl進行檢查。您可能需要使用PECL installation method。或者,我建議您使用homebrewhomebrew-php tap來維護您自己靈活的PHP安裝。

+0

好的,謝謝你的回答。我認爲這個函數自PHP 5.3起可用。因此,即使我定義了項目的PHP 5.3依賴項,我仍然需要使用該函數提供用戶區實現和我的軟件項目。太糟糕了:-(。 – TiMESPLiNTER

+0

是的,intl是一個獨立於PHP 5.3的依賴項,我認爲在這個時代需要安裝intl並不是不合理的,但這取決於你的目標受衆。 – deceze

0

這個問題也發生在Debian 7.9上,你可以使用apt-get來安裝php5-intl包來解決它。

0

我在我的服務器上有同樣的問題。與這裏所提出的解決方案,我有PHP版本7。所以我必須安裝相應的國際包裝:

對於PHP 7.1:

sudo apt-get install php7.1-intl 

對於PHP 7.0

sudo apt-get install php7.0-intl