Çalışma Anı Yapılandırması

Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.

mbstring yapılandırma yönergeleri
İsim Öntanımlı Değiştirme Yeri Değişiklik Bilgisi
mbstring.language "neutral" PHP_INI_PERDIR PHP 4.3.0'dan beri kullanılabilmektedir.
mbstring.detect_order NULL PHP_INI_ALL PHP 4.0.6'dan beri kullanılabilmektedir.
mbstring.http_input "pass" PHP_INI_ALL PHP 4.0.6'dan beri kullanılabilmektedir.
mbstring.http_output "pass" PHP_INI_ALL PHP 4.0.6'dan beri kullanılabilmektedir.
mbstring.internal_encoding NULL PHP_INI_ALL PHP 4.0.6'dan beri kullanılabilmektedir.
mbstring.script_encoding NULL PHP_INI_ALL PHP 4.3.0'dan beri kullanılabilmektedir.
mbstring.substitute_character NULL PHP_INI_ALL PHP 4.0.6'dan beri kullanılabilmektedir.
mbstring.func_overload "0" PHP_INI_PERDIR PHP <= 4.2.3'te PHP_INI_SYSTEM. PHP 4.2.0'dan beri kullanılabilmektedir.
mbstring.encoding_translation "0" PHP_INI_PERDIR PHP 4.3.0'dan beri kullanılabilmektedir.
mbstring.strict_detection "0" PHP_INI_ALL PHP 5.1.2'den beri kullanılabilmektedir.
PHP_INI_* kiplerinin tanımları ve ayrıntılı açıklamaları için Yapılandırma ayarlarının yeri bölümüne bakınız.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

mbstring.language string

Mbstring modülünde kullanılan öntanımlı ulusal dil ayarı (NLS). Bu yönerge, php.ini dosyasında kendinden sonra tanımlanması gereken mbstring.internal_encoding yönergesini özdevinimli ve sihirli olarak etkin kılar.

mbstring.encoding_translation boolean

HTTP sorgularında girdi kodlamasını algılayıp dahili karakter kodlamasına dönüştüren şeffaf karakter kodlama süzgecini etkin kılar.

mbstring.internal_encoding string

Öntanımlı dahili karakter kodlamasını tanımlar.

mbstring.http_input string

Öntanımlı HTTP girdi karakter kodlamasını tanımlar.

mbstring.http_output string

Öntanımlı HTTP çıktı karakter kodlamasını tanımlar.

mbstring.detect_order string

Öntanımlı karakter kodlaması algılama sırasını tanımlar. Ayrıca bakınız: mb_detect_order().

mbstring.substitute_character string

Geçersiz karakter kodlaması yerine kullanılacak karakteri tanımlar.

mbstring.func_overload string

Mbstring taydaşları tarafından sağlanan tek baytlık işlevlerin yerine özdevinimli olarak mbstring işlevlerinin kullanılmasını sağlar. Daha ayrınılı bilgi için İşlevlerin Aşırı Yüklenme Özelliği bölümüne bakınız.

mbstring.strict_detection boolean

Kesin kodlama algılaması etkin kılınır.

» HTML 4.01 belirtimine göre, tarayıcıların, bir formdan sayfada kullanılandan farklı bir karakter kodlaması ile veri göndermelerine izin verilmektedir. Tarayıcılar tarafından kullanılan karakter kodlamasının saptanması hakkında bilgi edinmek için mb_http_input() işlevine bakınız.

Günümüz tarayıcıları bir HTML sayfanın karakter kodlamasını kabul edilebilir bir doğrulukta tahmin edebiliyor olsalar da, Content-Type HTTP başlığının charset değiştirgesine header() işleviyle veya default_charset INI yönergesiyle uygun bir değer atamak daha iyidir.

Örnek 1 - php.ini ayar örnekleri

; Öntanımlı dili belirtin.
mbstring.language        = Neutral; öntanımlıdır; belli bir dil yoktur (UTF-8)
mbstring.language        = Turkish; öntanımlı dil Türkçe
mbstring.language        = Japanese; öntanımlı dil Japonca

;; Öntanımlı dahili kodlamasını tanımlayın.
;; Önemli: PHP'de çalışan bir karakter kodlaması belirtin
mbstring.internal_encoding    = UTF-8  ; Dahili kodlama UTF-8

;; HTTP girdi kodlaması dönüşümü etkindir.
mbstring.encoding_translation = On

;; Öntanımlı HTTP girdi karakter kodlamasını tanımlayın.
;; Önemli: Betik, http_input ayarını değiştiremez.
mbstring.http_input           = pass    ; Dönüşüm yok.
mbstring.http_input           = auto    ; HTTP girdisi özdevinimli
           ; "auto" şunlara genişletilir: "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; HTTP2 girdisi SJIS olur
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Sıralama belirtir

;; Öntanımlı HTTP çıktı karakter kodlamasını tanımlayın.
mbstring.http_output          = pass    ; Dönüşüm yok.
mbstring.http_output          = UTF-8   ; HTTP çıktı kodlaması UTF-8

;; Öntanımlı kodlama algılama sırasını belirtin.
mbstring.detect_order         = auto    ; Algılama sırası özdevinimli
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Sıralama belirtir

;; Öntanımlı geçersiz karakter ikame karakteri
mbstring.substitute_character = 12307   ; Bir Evrenkodlu değer
mbstring.substitute_character = none    ; Karakter basılmaz
mbstring.substitute_character = long    ; Uzun, örnek: U+3000,JIS+7E7E

Örnek 2 - EUC-JP kullanıcıları için php.ini ayarları

;; Çıktı Tamponlaması kapalı
output_buffering      = Off

;; HTTP başlık karakter kümesi
default_charset       = EUC-JP

;; Öntanımlı dil: Japonca
mbstring.language = Japanese

;; HTTP girdi kodlaması dönüşümü etkin
mbstring.encoding_translation = On

;; HTTP girdi kodlaması dönüşümü: özdevinimli
mbstring.http_input   = auto

;; HTTP çıktısı EUC-JP'ye dönüştürülür
mbstring.http_output  = EUC-JP

;; Dahili kodlama EUC-JP'dir
mbstring.internal_encoding = EUC-JP

;; Geçersiz karakter basılmaz
mbstring.substitute_character = none

Örnek 3 - SJIS kullanıcıları için php.ini ayarları

;; Çıktı Tamponlaması etkin
output_buffering     = On

;; çıktı dönüşümünü mb_output_handler yapar
output_handler       = mb_output_handler

;; HTTP başlık karakter kümesi
default_charset      = Shift_JIS

;; Öntanımlı dil: Japonca
mbstring.language = Japanese

;; HTTP girdi kodlaması dönüşümü: özdevinimli
mbstring.http_input  = auto

;; HTTP çıktısı SJIS'e dönüştürülür
mbstring.http_output = SJIS

;; Dahili kodlama EUC-JP'dir
mbstring.internal_encoding = EUC-JP

;; Geçersiz karakter basılmaz
mbstring.substitute_character = none

add a note add a note

User Contributed Notes 3 notes

up
0
ASchmidt at Anamera dot net
1 month ago
The documentation is vague, on WHAT precisely the valid "NLS" language strings are that are valid for "mbstring.language".

According to http://php.net/manual/en/function.mb-language.php the values are "Japanese", "ja", "English", "en", or "uni" for UTF-8.
On the other hand, the sample on this current page omits "uni" but introduces "Neutral" as an undocumented option - which is also the default value:

<?php
var_dump
( mb_language() );   // "neutral" (default if not set)
var_dump( mb_language( 'uni' ) );    // TRUE, valid language string
var_dump( mb_language() );    // "uni"
var_dump( mb_language( 'neutral' ) );    // TRUE, valid language string
var_dump( mb_language() );    // "neutral"
?>
up
0
Hayley Watson
2 months ago
String literals in the PHP script are encoded with the same encoding that the PHP file was saved with. This is not affected by default_charset or other .ini settings.

Scenario: The default_charset is KOI8-R, and there is a text file "input.txt" containing the string "Это текст для поиска." in KOI8-R encoding.

A PHP script is written:
<?php

// mb_internal_encoding('KOI8-R');

$string  = 'текст.';

$data = file_get_contents('input.txt');

echo
mb_strpos($data, $string);

?>
But unfortunately it was saved as UTF-8.

It doesn't work; mb_strpos() returns false because it can't find the UTF-8-encoded "текст" inside the KOI8-R-encoded "Это текст для поиска.".

Adjusting the default_charset had no effect. Not even fiddling with mb_internal_encoding could fix it, simply because the strings involved had *different* encodings and without actually changing one of them they just weren't going to match.

Either re-save the source file as KOI8-R to match the data file, or re-save the data file as UTF-8 to match the source code. Only then will the script properly echo '4'.
up
-4
PRETTYGIRL NOT COMe
5 years ago
Note that you should better at least set "mbstring.internal_encoding".

Just check as below:

<?php

echo mb_internal_encoding() . '<br />';
echo
mb_regex_encoding();

?>

You might be surprised at unexpected values.

eg.

mbstring.language Japanese
;mbstring.internal_encoding (commented out showing "no value" in phpinfo() )

These two lines in "php.ini" are the same values as

mb_internal_encoding("EUC-JP");
mb_regex_encoding("EUC-JP");

in Win / Linux servers.

"mbstring.internal_encoding" defines the default encoding for "mb_" Functions such as "mb_strlen()".

It also defines the same for "mb_ereg_" Functions such as "mb_ereg()" when you don't set "mb_regex_encoding".
To Top