PHP bir dize olmayan bütün alfanümerik ve boşluk olmayan karakterleri kaldırmak için nasıl?

3 Cevap

Ben bir dize tüm alfasayısal olmayan ve boşluk karakteri kaldırmak istiyorum. Yani boşluk kalmasını istiyorum. I [] parantez içindeki altındaki fonksiyonlarda bir alan için ne koymak:

ereg_replace("[^A-Za-z0-9]", "", $title);

Diğer bir deyişle, ne sembol tek bir alan için böyle bir sembol var, ben \ n yeni bir satır temsil biliyorum, alanı temsil eder.

3 Cevap

Sadece karakter sınıfı içine düz bir boşluk koymak:

[^A-Za-z0-9 ]

Diğer boşluk karakterler (tab, satır sonları, vb) için \s yerine kullanılacak.

Ayrıca PHP’s POSIX ERE regular expression functions PCRE regular expression functions lehine önerilmemektedir ve PHP 6 silinecektir farkında olmalıdır. Bu yüzden preg_replace yerine kullanmanızı öneririz:

preg_replace("/[^A-Za-z0-9 ]/", "", $title)

Yalnızca değişmez bir alan isterseniz, sekme ve satır gibi 'boşluk karakterleri' için grubun bir tane koymak \ s

Kabul cevabı boşluk kaldırmaz.

Aşağıdaki düşünün

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

echo $string;

> tD  138272099

Biz boşluk str_replace Şimdi, eğer biz istenen çıktı almak

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

// remove the spaces
$string = str_replace(" ", "", $string);

echo $string;

> tD138272099