Gebelik ile Over My Head A Bit Başlarken

0 Cevap php

[: Adı Emlakçı] veya [ofis: telefon] I şeklinde bir dize içeren html ve "etiketleri" var. Ben emlakçının adı $ veri ['Emlakçı'] ['name'] ve $ verilere ofis telefon bulunabilir böyle veritabanı veri (CakePHP oluşturulan) dizi ['Ofis'] ['telefon' var ].

Ben yapmak istiyorum bulmak ve değiştirme muhtemelen preg_replace_callback kullanarak, doğru verilerle her bir etiketi yerine, dize. Ben bir acemi, biraz olsa da, bu yüzden bu bende yakın değilim, ve bunu gülünç yavaş ve verimsiz eminim:

function template_swap($html, $data) {

    preg_match_all('/\[(.*):(.*)\]/', $html, $matches, PREG_SET_ORDER);

    foreach ($matches as $match) {
        if (isset( $data[ ucfirst($match[1]) ] )) {
            if (array_key_exists( $match[2], $data[ ucfirst($match[1]) ] )) {
                $html = str_replace( 
                    $match[0],
                    $data[ ucfirst($match[1]) ][ $match[2] ],
                    $html
                );
            }
        }
    }

    return html;
}

Herkes bu halletmek için daha iyi yollar üzerinde bazı fikirleri ile bana yardımcı olabilir misiniz?

0 Cevap