Изменение php "echoed" атрибута div с php - PullRequest
0 голосов
/ 18 марта 2010

Я использую PHP для отображения содержимого, хранящегося в моей базе данных.Контент представляет собой DIV, содержащий данные любого типа.

Проблема в том, что я не знаю идентификатор, и у меня возникают проблемы с этими DIV, если я пытаюсь отобразить их более одного раза.

Итак, идея состоит в том, чтобы изменять идентификатор DIV каждый раз, когда я хотел бы отобразить их.Примерно так:

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

Как бы я поступил так?

Ответы [ 2 ]

1 голос
/ 18 марта 2010

Это ужасно, но я думаю, что это работает.

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>
0 голосов
/ 18 марта 2010

Ваш вопрос сформулирован довольно расплывчато.

Во-первых, атрибут id для элементов HTML должен быть уникальным, поэтому целесообразно выводить уникальный id (вы также можете использовать class).

Если вы запросили свою базу данных и получили, скажем, массив, содержащий id и содержимое, вы можете использовать функцию следующим образом:

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

Простопример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...