我在PHP中有一个包含以下代码的字符串:
<html>
<head>
<body>
<p>Hi! $username$, your email is $email$</p>
</body>
</head>
</html>
这是存储在数据库中,我有很多。每个记录中$之间的变量可以不同。我想获取变量的名称并将它们存储到数组中,例如:
array('username', 'email');
由于
编辑:文档HTML是动态的并存储在数据库中,例如我也可以这样:
<span>Test of $user$ with the $test$ and $foo$ and also a $foo2$ var</span>
答案 0 :(得分:2)
您可以使用preg_match_all
功能。
尝试以下代码:
$html = '<html>
<head>
<body>
<p>Hi! $username$, your email is $email$</p>
</body>
</head>
</html>';
preg_match_all("/\\$(.*?)\\$/", $html, $matches1);
$required_array = $matches1[1];
print_r($required_array);
<强>输出强>
Array
(
[0] => username
[1] => email
)
答案 1 :(得分:0)
$content = "<html>
<head>
<body>
<p>Hi! $username$, your email is $email$</p>
</body>
</head>
</html>";
$p = explode("$", $content );
echo $p[2]; // username
echo $p[4]; // email
答案 2 :(得分:0)
preg_match("/(?:Hi! )(.*)(?:, your email is )(.*)(?:<\/p>)/", $input_line, $output);
答案 3 :(得分:0)
请尝试以下代码来提取变量
$string = '<html>
<head>
<body>
<p>Hi! $username$, your email is $email$</p>
</body>
</head>
</html>';
$pat= '/\$(\w*)\$/';
preg_match_all($pat, $string, $pat_array);
$first = $pat_array[1][0];
$second = $pat_array[1][1];
$final_array =array($first,$second);
?>