使用php更改php“echoed”div属性

时间:2010-03-18 16:21:01

标签: php dom attributes

我正在使用PHP来回显存储在我的数据库中的内容。内容是携带任何类型数据的DIV。

问题是我不知道ID,如果我尝试多次显示这些DIV,我会遇到一些问题。

所以,我的想法是每次我想显示它们时修改DIV id。 像这样:

<?php modify_div_id($data,"id-456"); ?>

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

这很难看,但我觉得它很有用。

function modify_div_id( $data, $new_id ) {
  return preg_replace( '/(<div[^>]+?id=)("|\')(.*?)("|\')/i', '$1$2' . $new_id . '$4', $data );
}

最好的方法是使用XML解析器来更改属性。

编辑:该函数假定div已经具有id属性。

编辑#2
它似乎正在发挥作用!

jwandborg@sophie:~$ cat | php -r "eval( file_get_contents('php://stdin') );"
function modify_div_id( $data, $new_id ) {
  return preg_replace( '/(<div[^>]+?id=)("|\')(.*?)("|\')/i', '$1$2' . $new_id . '$4', $data );
}
echo modify_div_id('<div pajas="pajas" id="fisk">Innehåll</div>', 'nytt_id');

# Result: <div pajas="pajas" id="nytt_id">Innehåll</div>

答案 1 :(得分:0)

你的问题含糊不清。

首先,HTML元素的id属性必须是唯一的,因此回显唯一的id是合适的(您也可以使用class)。

如果您查询了数据库并收到了包含id和内容的数组,则可以按如下方式使用该功能:

function modify_div_id($data, $id) {
  echo "<div id='$id'>$data</div>";
}

只是一个例子。