Yanıtlar:
$name = str_replace(' ', '_', $name);
Diğerleri bunu nasıl kullanarak açıkladı str_replace, bunu elde etmek için regex kullanabilirsiniz.
$name = preg_replace('/\s+/', '_', $name);
$name = str_replace(' ', '_', $name);
Http://php.net/str_replace numaralı telefonu arayın :$input = str_replace(' ', '_', $input);
Str_replace kullanın :
str_replace(" ","_","Alex Newton");
Ayrıca, kelimelerin _words_more_words_ gibi alt çizgilerle başlamasını veya bitmesini önlemek için de yapabilirsiniz. Bu, boşluklarla başlayıp bitmesini önler.
$trimmed = trim($string); // Trims both ends
$convert = str_replace('', '_', $trimmed);
Bu benim dosyaları adlandırma için alt çizgiler içine boşluklar yapar benim kodun bir parçasıdır:
$file = basename($_FILES['upload']['name']);
$file = str_replace(' ','_',$file);
Strtrdizeler yerine tekli karakterlerin yerini alır, bu nedenle bu örnek için iyi bir çözümdür. Sözde strtrdaha hızlıdır str_replace(ancak bu kullanım durumunda ikisi de ölçülemeyecek kadar hızlıdır).
echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton
str_replace- açık bir çözümdür. Ama bazen tam olarak hangi alanların olduğunu bilmeniz gerekir. CSV dosyasındaki boşluklarla ilgili bir sorunum var.
İki karakter vardı ama bunlardan biri 0160 (0x0A0), diğeri görünmezdi (0x0C2)
son çözümüm:
$str = preg_replace('/\xC2\xA0+/', '', $str);
Görünmez sembolü mc'den HEX görüntüleyiciden buldum (gece yarısı görüntüleyicisi - F3 - F9)
'/\s+/'?