"Abc123def" Değiştir

2 Cevap php

Normalde ben sadece bu yapardı.

$str = preg_replace('#(\d+)#', ' $1 ', $str);

Ben utf-8 olacaktı bilseydim ben desene bir küçük harf "u" değiştirici eklemek istiyorum ve ben iyi olacağını düşünüyorum. Ama nedeniyle utf-8 2x alarak ve bazı durumlarda belirlenen doğal karakter kullanılmış olsaydı alacağını daha depolama alanı 3 kat raporlarının, ben utf-8 uygulamayı kısıtlamak için değil çalışıyorum.

Böylece, ben uzakta benim en sevdiğim preg_ fonksiyonlarından kalmaya çalışıyorum.

Birçok şey şimdiye kadar oldukça basit olmuştur, ama ben normalde böyle "\ d" olarak preg_ karakter sınıfları kullanmak istiyorum değiştirmeleri biraz şaşırıp.

2 Cevap

Ile bir depolama sarıcı uygulamak mb_convert_encoding kadar içten sadece UTF-8 işlemek zorunda.

(Ben hala require UTF-8 ve herkes bir sürü sorun kaydedebilirsiniz gerektiğini düşünüyorum.)

UTF-8 kodlaması ile 127 veya daha az bir bayt değeri ile kodlanmış çıktı her şey her zaman bu bayt bir değer ve çoklu bayt dizisinin hiç bir bölümünü eşleşen ASCII karakter olduğunu böyle olduğunu düşünüyorum. Yani kodlama Bu durumda ASCII ve (boşluk ve rakamlar tüm ASCII gibi) sorunlara neden değil taklit etmeye devam edebilirsiniz.

http://en.wikipedia.org/wiki/UTF-8, bir çokbaytlı tüm bayt en önemli bit set (örneğin, tüm> 127 olan) sahip olduğunu gösterir nerede açıklamasına bakın.