Bir dize içinde aşırı boşluk kaldır

5 Cevap php

Ben bir CSV dosyasına koymak önce sonra tüm HTML etiketleri, satırbaşı ve satırsonu kaldırmak, bir veritabanı sorgusu bir dize alırsınız. Sadece şey between dizeleri excess beyaz boşluk kaldırmak için bir yol bulamıyorum, olduğunu.

Ne iç boşluk karakterleri kaldırmak için en iyi yol olacağını?

5 Cevap

Ne istediğinizi tam olarak emin değilim ama burada iki durum değildir

  1. Eğer sadece trim(), ltrim() veya kullanabileceğiniz dizenin başında veya sonunda aşırı boşluk ile ilgili ise rtrim() kaldırmak için.

  2. Bir dize içinde ekstra boşluk ile ilgili ise "" tek bir boşluk ile * "" Birden whitespaces bir preg_replace düşünün

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

$str = str_replace(' ','',$str);

Ya da, çizgi ile değiştirin, ve nbsp; vs vs

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

Kod Yukarıdaki satır extra boşluk, yanı sıra başındaki ve sonundaki boşlukları kaldırır.

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

Sandip cevabı üzerine genişletmek için, ben bit.ly. de yanlış kodlanmış günlüklerinde gösteren dizeleri bir grup vardı Onlar kod sadece URL geliyordu ama bir boşluktan sonra bir twitter kolu ve diğer bazı şeyler koymak. Bu gibi görünüyordu

? productID =26%20via%20@LFS

Normalde, bu bir sorun olabilir would't, ancak SQL enjeksiyon girişimi bir sürü alıyorum, bu yüzden 404 için geçerli bir kimlik değil bir şey yönlendirme. Ben içine geçersiz ProductID dize yapmak için preg_replace yöntem kullanılır geçerli ProductID.

$productID=preg_replace('/[\s]+.*/','',$productID);

Ben URL bir yer aramak ve daha sonra ondan sonra her şeyi kaldırın.