在PHP中用delimiter搜索单词并将它们放入数组中

时间:2016-04-07 07:14:10

标签: php mysql

我在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>

4 个答案:

答案 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);

http://www.phpliveregex.com/p/ffb

答案 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);

   ?>