Php.ini içinde ünlem işaretleri ile köprü Escape

4 Cevap

Ben aşağıdaki gibi metin uyarıları alır bir config dosyası vardır:

warnings.1 = Please check the date

Bu HTML olarak kullanıcıya sunulmaktadır. Ben aşağıdaki gibi bir köprü gömmek gerekir:

warnings.1 = <a href="http://foo.com/!FOO!/">check with foo</a>

Ben bana yaşam için () okumak ve bu dize istediğim şekilde alabilirsiniz bu şekilde parse_ini_file kaçmak için nasıl anlamaya olamaz.

4 Cevap

http://php.net/manual/en/function.parse-ini-file.php:

array parse_ini_file(string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]])

tarama_kipi:

INI_SCANNER_NORMAL (varsayılan) veya INI_SCANNER_RAW olabilir ya olabilir. INI_SCANNER_RAW olabilir verilirse, o seçenek değerleri çözümlenmez olmayacaktır.

Changelog: 5.3.0 Added optional scanner_mode parameter.

Eğer 5.3 değilsin Yani eğer mahvolduk. Yoksa farklı bir uygulama kullanmak gerekir, parse_ini_file PHP için tek INI dosya ayrıştırıcı değil.

urlencode kullanmayı deneyin, ünlem işaretleri gibi kaçtı alınmalıdır:

urlencode("foo.com/!FOO!/");

Çıktı:

foo.com%2F%21FOO%21%2F

Ben biraz garip çalışmak çalışırken daha veri kaçmak için nasıl bizim geliştiriciler için çok daha net olarak Zend_Config_Xml geçiş sona erdi ettik. Ini sözdizimi.

Cevaplar için herkese teşekkürler.

Ben sadece son zamanlarda biraz benzer bir senaryoyu karşılaştı ve biraz düşündükten sonra ben sorunun kullanılan işlev veya sınıf ile değil kullanımı kendisi ile değil sonuca geldi. Gibi parametre değerleri

<a href="http://foo.com/!FOO!/">check with foo</a>

Daha iyi href sadece değer parametresinin değeri bir şekilde uygulanabilir olacaktır. Örnek:

warnings.1.href = "http://foo.com/!FOO!/"
warnings.1.text = "check with foo"

Parametre değerleri sadece (örneğinden örneğine) değiştirmek için bağlı değerler içermelidir, çünkü bu. Senin durumunda, çapa etiketleri html kendisi daha iyi, sol, ve değil .ini yapılandırma dosyası. Bu hafif yapılandırma dosyası tutmak değil sadece, ama aynı zamanda, çünkü HTML kodu yapılandırma dosyası HTML ve yapılandırma değerleri olmalıdır, burada konser ayrılması temiz tutar.

Yani evet, PHP sürümleri geçmek için veya parse_ini_file fonksiyonuna parametreler ekleyerek (bunu yaparken beri gerekirse daha resmi bir yama olarak yapılması olacaktır Zend_Config_Ini sınıfına kesmek olurdu) gerek yok.