PHP Wrap çift tırnak içinde bir string

3 Cevap php

Ben çıkış için çift tırnak içinde bir kullanıcı girilen dize sarın çalışılıyor ama ben dize iki tarafında çift çift tırnak ile bitmiyor emin olmak istiyorum. Örneğin, bir kullanıcı mesaj

"Merhaba"

Bunu çevirmek istemiyorum

""Merhaba""

Ben aşağıdaki kodu kullanarak oldukça kolay yapabilirsiniz, ancak ben dizeleri birçok yoluyla döngü ediyorsam bu yavaş alabilirsiniz endişeleniyorum.

$string = '"'.trim($string,'"').'"';

Herkes bunu daha iyi bir yol varsa, bu harika olurdu. Herkes benim yolum iyi olduğunu teyit eğer Aynı şekilde, ben mutlu olacağım.

Teşekkürler

3 Cevap

Bu ben bu sorunu çözecek tam olarak nasıl olduğunu. Bu uygulamanın yavaş olması ile ilgili bir sorun varsa, yavaş olma kodu endişesi sadece değer ve Döşeme tablolara aşağı izleyebilirsiniz.

İyi bilinen bir programlama alıntı "Premature Optimisation tüm kötülüklerin köküdür" - bu hakkında daha fazla bilgi için bağlantılı wikipedia makalesine bakın.

Şahsen, ben girişindeki tırnak sıyırma öneririm. Eğer tırnak girilebilir ya da saklanmasına izin verirseniz daha hızlı yapmak için olduğu gibi, her zaman onları görüntülemeden önce bir if / else kullanarak takılıp gidiyoruz.

Açıkçası, hala ne olursa olsun sizinle sonuna kadar ne olursa olsun sistemi veri girişi bir sağlamlık denetimi gerçekleştirmek gerekiyordu.

Make a careful consideration of what should happen with all the cases. (using [] as quotes for readability)

Sen ["Merhaba"] sizin için ne söyledin ama sen [ben "Merhaba", serseri dedi] için ne yapmalıyım? Eğer hala kullanıcı girişi tırnak şerit mı, yoksa bunları kaldırabilirim? Ya da belki bir adım daha ileri gidin ve çift tırnak tek tırnak yerine ... ama sonra kullanıcı girişi tek ve çift tırnak hem de içeren durumlarda göz önünde olurdu! Ne kullanıcı (hayır kapanış alıntı!) [Merhaba "] gibi" dilbilgisi açısından yanlış "metin koyar ne zaman.

Bunu sağlamak için en iyi yolu doğru aklınıza ve önerilen çözüm aslında beklenen ne emin yapabilir, her kenar durum için bir test durumu yapmaktır.

Bu gereksinimi için aslında nedeni [] "" "veri" Ben bir noktada bir kullanıcının giriş alıyorum ve daha sonra başka bir noktada onlara yeniden görüntüleyerek, ve onları [gibi aptal görünümlü verileri göstermek istemiyorsanız] ise , muhtemelen sadece kullanıcının amaçlanan verileri ile orta vidalar onları sıyırma, çünkü sadece, başlangıç ​​veya giriş dizesi sonundan itibaren çift tırnak çıkarmak isteyeceksiniz.

Amacınız açıkça girdi ve onlar girdi değil mi metin ayırt etmek sadece ise, bu vurgulama diğer araçları kullanarak düşünün tırnak işaretleri yerine. Tamamen bu sorunu önlemek: Yani yerine [size "veri" girdi], sen [sen data girilen] veya [verilerini girdiğiniz] görüntüleyebilirsiniz.