如何获得开始标记&使用PHP的HTML元素的结束标记

时间:2013-10-01 12:31:11

标签: php html

我整天都在努力实现这一目标,但没有任何进展。

我有这部分代码

 $LookUpData =array(
        ID1 =>  '<div> First </div>',
        ID2 => '<p>Second</p>'
    );

$tagData = $LookUpData[ID1];
print_r($tagData);

在这种情况下我得到的输出是: 第一

理想的情况是,如果我得到:

           0 => <div>
           1 => First
           2 => </div>

我希望你明白我的问题是什么,我需要什么。欢迎各种帮助。

2 个答案:

答案 0 :(得分:0)

$matches = array();
preg_match("/(<[^>]+>)(.*)(<\/[^>]>)/", "<div>First</div>", $matches);
var_dump($matches);

应该足以让你入门

答案 1 :(得分:0)

解决问题的代码

<?php
$LookUpData =array(
        'ID1' =>  '<div> First </div>',
        'ID2' => '<p>Second</p>'
);

$tagData = $LookUpData['ID1'];

preg_match('#(<.*?>)(.*)(</.*?>)#', $LookUpData['ID1'],$m);
unset($m[0]);
print_r($m);
?>

代码输出:

 Array ( [1] => <div> [2] => First [3] => </div> )

说明:

  • 如果要为数组命名键,则应使用''或“”。如果你不这样做,你会发现它不是常数
  • Preg match完全符合您的需求,因为它在字符串中寻找模式匹配。

模式说明:

  • ## - 是定义模式开始和结束的字符
  • (<.*?>) - 是一个子模式,用于查找&lt;&gt;之间的任何字符它适合

    等。

  • (.*) - 这是任何角色(几乎任何角色)
  • 的模式
  • (</.*?>) - 这次关闭标签的另一个子模式几乎与第一个相同。

Online demo - 注意代码在浏览器中正确显示有点不同(html标签)