php str_replace

7 Cevap php

i aynı anda tüm bu değerleri tutabilir uzun bir dizesi vardır:

hello<!>how are you? <!>I am fine<!> What is up? <!> Nothing!

Ben tüm bu posibilities bulmak gerekir:

' <!> '
' <!>'
'<!> '
'<!>'

Ve "\ n" ile değiştirin

Bu php str_replace ile elde edilebilir?

7 Cevap

Eğer sadece bu 4 olanakları varsa, evet, o zaman str_replace ile yapabilirsiniz.

$str = str_replace( array( ' <!> ', ' <!>', '<!> ', '<!>' ), "\n", $str );

Evet, ama ne iki boşluk varsa? Ya da bir sekme? Her biri için bir mekansal dava eklerim?

Ya o her biri için özel durumlar eklemek veya normal ifadeleri kullanabilirsiniz:

$str = preg_replace( '/\s*<!>\s*/', "\n", $str );

Kesinlikle böyle str_replace ile yapabilirsiniz:

$needles = array(" <!> ","<!> "," <!>","<!>");
$result = str_replace($needles,"\n",$text);

Sadece str_replace ile bunu yapamaz. A explode, strip ve implode kombinasyonu, ya da kullanıcı kullanımı ya preg_replace.

Edit: preg_replace('/\s*<!>\s*', PHP_EOL, $string); daha iyi olmalıdır.

Tabii, str_replace('<!>', "\n", $string); senin örneğin tam olup olmadığını.

Sen kullanabilirsiniz:

//get lines in array
$lines = explode("<!>", $string);
//remove each lines' whitesapce
for(i=0; $i<sizeof($lines); $i++){
    trim($lines[$i]);
}
//put it into one string
$string = implode("\n", $lines)

Bu biraz sıkıcı, ama bu (aynı zamanda iki boşluk ve sekmeleri kaldırır) çalışmalıdır. (Kod test etmedi, bu yüzden hatalar olabilir)

Bu düzgün tür:

$array = explode('<!>', $inputstring);
foreach($array as &$stringpart) {
  $stringpart = trim($stringpart);
}
$outputstring = implode("\r\n", $array);