PHP basit bir metin-çevirmen oluşturmak için çalışıyoruz.
Bu gibi bir şey eşleşen bir görüntüyü:
Bla bla {translator id="TEST" language="de"/}
Dil isteğe bağlı olabilir
Blabla <translator id="TEST"/>
İşte kod:
$result = preg_replace_callback(
'#{translator(\s+(?\'attribute\'\w+)="(?\'value\'\w+)")+/}#i',
array($this, 'translateTextCallback'),
$aText
);
Bu "özelliklerini" özler, ancak sonuncuyu getirir. Benim ilk düşünce PHP her maçta (adlandırılmış) Dizi elemanlarını yazar zaman, grup adlandırma ile ilgisi oldu. Ama aynı zamanda bu adlandırma grubunu dışarıda bırakarak sadece son maçı döndürür.
Örnek olarak geri arama iade olarak burada bir dizidir
Array
(
[0] => {translator id="TEST" language="de"/}
[1] => language="de"
[attribute] => language
[2] => language
[value] => de
[3] => de
)