我创建了一个允许用户回显变量的文本区域:
Hello {$name}!
...还有数组:
Hello {$person.name}
使用以下行 PREG_REPLACE 字符串,以便它可以由 PHP eval()'ed:
$input = preg_replace( $patter , $replacement , $input);
我让它与浅变量一起工作:
'/{\$([a-zA-Z0-9_-]*)}/'
变成<?php echo $$1; ?>
...并使用 1- 2- 或 3 级深度数组:
'/{\$([a-zA-Z0-9_-]*)\.([a-zA-Z0-9_-]*)\.([a-zA-Z0-9_-]*)\.([a-zA-Z0-9_-]*)}/'
变成<?php echo $$1['$2']['$3']['$4']; ?>
但我真正想要的是无限的水平......就像......
'/{\$([a-zA-Z0-9_-]*)<\.([a-zA-Z0-9_-]*)>}/'
变成<?php echo $$1<['$*']>; ?>
抱歉,如果这让您头疼 - 它肯定让我感到头疼!