PHP nasıl değişkenler içinde sekmeleri boşluk ile değiştiririm?

4 Cevap php

$ Veri sekmeler, lider boşlukları ve birden çok boşluk varsa, ben bir boşluk tüm sekmeleri değiştirmek istiyoruz. tek bir boşluk ile birden çok boşluk ve önde gelen boşlukları kaldırın.

açacak aslında somthing

Input data:
[    asdf asdf     asdf           asdf   ]

Into output data:
[asdf asdf asdf asdf]

Ben bunu nasıl yaparlar?

4 Cevap

Trim, tek boşluk olan sekmeleri ve fazladan boşluk değiştirin:

$data = preg_replace('/[ ]{2,}|[\t]/', ' ', trim($data));

Sonra, köşeli parantez dize parçası değildir varsayarsak ve sadece bilgi amaçlıdır bunları kullanarak konum:

$new_string = trim(preg_replace('!\s+!', ' ', $old_string));

Tek bir regex ile bunu yapmak mümkün olabilir ama bu oldukça karmaşık bir regex olacak. Yukarıda çok daha basittir.

Note: Ben de "AB CD" ile "AB \ t \ TCD" (\ t sekme) değiştirmek istemiyorum varsayarak yaşıyorum.

$data = trim($data);

Bu sizin lider (ve sondaki) boşluk kurtulur.

$pattern = '/\s+/';
$data = preg_replace($pattern, ' ', $data);

Bu sadece tek bir boşluk içine bir veya daha fazla boşluk herhangi bir toplama döner.

$data = str_replace("\t", " ", $data);

Bu sizin sekmeler kurtulur.

Sadece bu regex kullanabilirsiniz

$str = trim(preg_replace('/\s\s+/', ' ', $str));

o bir boşlukla tüm sekmeleri ve boşlukları yerini alacak,

here sign + in regex means one or more times, pattern means, that wherever there are two or more spaces, replace it by one space