PHP bir değişkeni içinde whitespaces şerit

5 Cevap php

How can you strip whitespaces in PHP's variable?

I know this comment PHP.net. I would like to have a similar tool like tr for PHP such that I can run simply

tr -d " " ""

I php_strip_whitespace tarafından başarısız işlevi çalıştırabilirsiniz

$tags_trimmed = php_strip_whitespace($tags);

Ben başarısız da regex fonksiyonu çalıştırmak

$tags_trimmed = preg_replace(" ", "", $tags);

5 Cevap

any boşluk şerit, normal bir ifade kullanabilirsiniz

$str=preg_replace('/\s+/', '', $str);
$string = str_replace(" ", "", $string);

Ben preg_replace gibi bir şey arıyor olacağına inanıyorum [:space:]

Bazen üst üste beyaz boşlukları silmeniz gerekir. Bunu şöyle yapabilirsiniz:

$str = "My   name    is";
$str = preg_replace('/\s\s+/', ' ', $str);

Çıktı:

My name is

Neden sadece $ etiketleri her yerde tüm whitespaces kaldırmak istiyorsanız:

str_replace(' ', '', $tags);

Yeni çizgileri kaldırmak ve böyle bu biraz daha gerektirecektir isterseniz ...

Herhangi bir olası seçenek dosyaları gibi değişkenler simülasyonu için özel dosya sarıcı kullanmaktır. Bu kullanarak elde edebilirsiniz:

1) Her şeyden önce, sizin sarıcı kaydedin (yalnızca bir kez dosyasında, kullanmak session_start () gibi):

stream_wrapper_register('var', VarWrapper);

2) Sonra) tamamen doğru değildir, bu gerçekten hızlı yazılır (sizin sarıcı sınıfı tanımlamak, ama çalışıyor:

class VarWrapper {
  protected $pos = 0;
  protected $content;
  public function stream_open($path, $mode, $options, &$opened_path) {
    $varname = substr($path, 6);
    global $$varname;
    $this->content = $$varname;
    return true;
  }
  public function stream_read($count) {
    $s = substr($this->content, $this->pos, $count);
    $this->pos += $count;
    return $s;
  }
  public function stream_stat() {
    $f = fopen(__file__, 'rb');
    $a = fstat($f);
    fclose($f);
    if (isset($a[7])) $a[7] = strlen($this->content);
    return $a;
  }
}

3) Sonra var üzerinde sargı ile herhangi bir dosya fonksiyonunu kullanmak :/ / protokolü (siz dahil çok vs gerektiren için kullanabilirsiniz):

global $__myVar;
$__myVar = 'Enter tags here';
$data = php_strip_whitespace('var://__myVar');

Not: (global $ __myVar gibi) küresel kapsam içinde değişken olması unutmayın