2013-07-29 61 views
3

當我創建非英語頁面(例如,俄語),我必須使用header()函數來設置頁面的字符集(我用UTF-8):如何設置默認的PHP頭()

header('Content-Type: text/html; charset=utf-8'); 

但我所有的頁面都應該有UTF-8字符集,在PHP中有沒有一個propery默認設置它(我的意思是:我不想每次都設置它)。

+3

希望它會幫助你http://stackoverflow.com/questions/2139699/set-http-header-for-all-php-scripts-via-htaccess-file – Fallen

回答

1

您可以使用.htaccess文件做到這一點:

AddDefaultCharset UTF-8 

如果你想要的東西有點更強大的,你可以僅針對特定的文件類型指定此charset類型:

<FilesMatch ".(htm|html|css|js)$"> 
    AddDefaultCharset UTF-8 
</FilesMatch> 

也看到這篇文章做它的其他方式: http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

+1

因此,要設置語言,我應該使用:AddLanguage ru-Ru .html .htm .css .js或其他東西? – mirelana

+2

是的,這應該是可能的。您也可以使用'DefaultLanguage'指令,例如'DefaultLanguage en-US'。 –

-1

你的問題沒有太多與PHP。你的httpd配置不正確(即在許多發行版的Apache默認情況下使用來與AddDefaultCharset設置爲Latin1

1

整個.htaccess文件

讓我們來看看整個htaccess的配置文件,然後通過所有的配置選項。

Header unset Pragma 
FileETag None 
Header unset ETag 

緩存圖片/ PDF文檔10天

<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$"> 
    Header set Cache-Control "max-age=864000, public, must-revalidate" 
    Header unset Last-Modified 
</FilesMatch> 

緩存HTML/HTM/XML/TXT diles 2天

<FilesMatch "\.(html|htm|xml|txt|xsl)$"> 
    Header set Cache-Control "max-age=7200, must-revalidate" 
</FilesMatch> 
1

您可以使用define()設置默認字符集。

從PHP文件建立http://www.php.net/manual/en/regexp.reference.unicode.php

$text = '';//some russian content 
define('CHARSET', preg_match('/[\p{Cyrillic}]/u', $text) ? 'windows-1251' : 'utf-8');// or fetch charset from DB some other resource 
header('Content-Type: text/html; charset='.CHARSET); 
+1

我已經說過了:我不想使用header(),我想設置標題默認值! – mirelana

+0

您可以使用.htaccess爲您的頁面設置默認字符集,但是當您的頁面使用的語言不同時,您會做什麼。在那個cae中,您需要編寫一些能夠檢測字符集的字符集 – Shushant

+1

我的網站只有英文/俄文版,所以我只需要UTF-8(或windows-1251) – mirelana