PHP - regex şablon değişkeni Ayrıştırma

0 Cevap php

Ben bu şablon dosyasını ($ html) ayrıştırmak zorunda:

{$myFirstVariable}
{$myMainVar:MYF1,"x\:x\,x",2:MYF2:MYF3,false}
{$myLastVariable:trim}

Benim php ayrıştırıcı, aşağıdaki:

$regexp = '#{\$(?<name>.+?)(\:(?<modifiers>.+?))?}#';

preg_replace_callback($regexp, 'separateVariable', $html);

function separateVariable($matches) {
    $varname = $matches['name'];

    print $varname."\n";

    if (isset($matches['modifiers'])) {
        $modifiers = $matches['modifiers'];

        $modifiers = preg_split('#(?<!\\\):#', $modifiers);
        $parsed = array();

        foreach ($modifiers as $modifier) {
            $modifier = preg_split('#(?<!\\\),#', $modifier);
            $parsed[array_shift($modifier)] = $modifier;
        }

        // parsed[myFuncName] = Array(2ndArg, 3rdArg)

        print_r($parsed);
    }

    print "\n";
}

Bir '\' ile: {$ ... myMainVar} in ',' ve: 'All I kaçmak ettik dışında çalışma.

Eğer '\' kadar beni serbest herhangi bir çözüm var mı?

Teşekkürler.

0 Cevap