如何使用preg_match_all提取键和值?

时间:2011-05-07 16:13:42

标签: php regex preg-match-all

我有一个包含语言变量的php文件,如下所示:

define('YES', 'Yes');
define('NO', 'No');
define('HOME', 'home');
define('UNKNOWN', 'Unknown');
define('YEARS', 'years');
define('DAYS', 'days');
define('LOADING', ' Long text ...
...end of text');

我需要解析它,提取密钥和值以供进一步使用。 这种情况的REGEX模式是什么?

2 个答案:

答案 0 :(得分:3)

<?PHP
$STR = "define('YES', 'Yes');
define('NO', 'No');
define('HOME', 'home');
define('UNKNOWN', 'Unknown');
define('YEARS', 'years');
define('DAYS', 'days');
define('LOADING', ' Long text ...
...end of text');";

if( $i = preg_match_all( "/define\(\s*'([^']+)'\,\s*'([^']+)'\);/si" , $STR , $m ) )
{
    print_r( $m );
}
?>

答案 1 :(得分:1)

如果您希望获得所有已定义的常量,请查看此函数get_defined_constants