如何设置默认的php header()

时间:2013-07-29 06:39:09

标签: php header

当我创建非英文页面(例如,俄语)时,我必须使用header()来设置页面的字符集(我使用UTF-8):

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

但是我的所有页面都应该有UTF-8字符集,默认情况下是否存在php设置它(我的意思是:我不想每次都设置它)。

4 个答案:

答案 0 :(得分:1)

您可以使用.htaccess文件执行此操作:

AddDefaultCharset UTF-8

如果您想要更强大的功能,可以仅为特定文件类型指定此字符集类型:

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

另请参阅此文章了解其他方法: http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

答案 1 :(得分: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>

答案 2 :(得分:1)

您可以使用define()设置默认字符集。

来自PHP documentaion 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);

答案 3 :(得分:-1)

PHP的问题并不多。您的httpd配置不正确(例如,默认情况下,Apache曾经将AddDefaultCharset设置为Latin1时附带的许多发行版。