PHP küçük harfe değişken isimlerini değiştirmek?

2 Cevap

Ben olsun parametreleri alır bir api dinleyici komut dosyası var. Ama kullanıcıların parametreler üzerinde karışık durumda değişken adları geçmek eğilimindedir zaman sorunlarınız gibi görünüyor.

Örneğin:

http://mylistenerurl.com?paramName1=Hello&paramname2=World

Ben değişken adları bazı fonksiyonu sorgu dize işlemek sonra gibi daha düşük durumda harf-insensitively doğrusu hala tüm yorumlanır olacak şekilde flixible olmak benim dinleyici gerekir, hepsi alt kasalı değişkenler olarak döndürülür:

extract(someFunction($_GET));
process($paramname1, $paramname2);

Herkes bu biraz ışık tutabilir?

* Çok takdir. teşekkürler!

2 Cevap

Bu hile yapmak gerekir:

$array_of_lower_case_strings = array_map( "strtolower", array( "This Will Be ALL lowercase.", ... ) );

Senin durumunda böyle:

$get_with_lowercase_keys = array_combine(
    array_map( "strtolower", array_keys( $_GET ) ),
    array_values( $_GET )
);

Ben söz edeceğiz Bir şey beklenmedik değişkenler sizin PHP enjekte izin vermek için yararlanılabilir gibi extract ile VERY dikkatli olmak gerekir.

: Gerektiğinde global değişkenler ($ _GET, $ _POST) Uygula

örneğin setLowerCaseVars($_GET); sizin durumunuzda

function setLowerCaseVars(&$global_var) {
    foreach ($global_var as $key => &$value) {
        if (!isset($global_var[strtolower($key)])) {
            $global_var[strtolower($key)] = $value;
        }
    }
}

Edit: bu alt-harf değişkeni zaten ayarlanmış vakaları üzerine yazmaz çünkü ben Array_combine kullanarak bu tercih unutmayın.