PHP nasıl kaçtı tırnak atlama tek tırnak arasındaki tüm boşlukları kaldırmak istiyorum

3 Cevap php

Başlık sorar aynen:

PHP nasıl kaçtı tırnak atlama tek tırnak arasındaki tüm gereksiz boşluklar kaldırmak istiyorsunuz?

Ben ayrıştırma için ön hazırlık için hızlı bir uygulama arıyorum. Basit bir döngü kullanarak daha yavaş olurdu ben regex kullanmayı tercih ediyorum.

(Aşağıdaki çift tırnak sadece teşhir amaçlıdır)

örnek olacaktır:

Giriş:

"    testing    '  this  is a     \'test\'  '     zzz     "

çıktı:

"testing '  this  is a     \'test\'  ' zzz"

3 Cevap

<?php

$parts = preg_split('/((?<!\\\\)|(?<=\\\\\\\\))\'/', trim($data));

foreach ($parts as $index => &$part) {
    if ($index % 2 == 0) {
        $part = preg_replace('/\s{2,}/', ' ', $part);
    }
}

echo join('\'', $parts);

P: Şimdi kaçırdığımız çok basit bir çözüm beklemek için

Tamam, psuedocode zamanı:

var shouldtrim = true;
var escaped = false;
foreach char in string
    if char is whitespace and lastchar is whitespace and shouldtrim
        remove char from string

    if char is ' and not escaped
        toggle shouldtrim

    if char is \
        toggle escaped
    else
        escaped = false

Bu deneyin:

<?php
$str = "    testing    '  this  is a     \'test\'  '     zzz     ";

echo trim($str," ");

?>