Как добавить текст во внешний HTML-файл внутри конкретного тега с помощью PHP?

Допустим, у меня есть внешняя html-страница, и я хочу добавить текст внутри определенного тега со своей страницы администратора php, например поместить другой текст внутри этого тега span.

Например:

<html>
<body>
<span class="text"></span>
</body>
</html>

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

4 голоса | спросил John Johnson 28 J0000006Europe/Moscow 2012, 18:16:11

2 ответа


0

Вы можете сделать это, используя PHP DOMDocument, например так:

// Load the HTML document
$doc = new DOMDocument;
$doc->loadHtmlFile( 'htmlpage.html');

// Get the parent node where you want the insertion to occur
$parent = $doc->getElementsByTagName('body')->item( 0);

// Create the child element 
$child = $doc->createElement( 'span');
$child->setAttribute( 'class', 'text');

// Append (insert) the child to the parent node
$parent->appendChild( $child);

// Save the resulting HTML
echo $doc->saveHTML();

Итак, учитывая этот HTML:

<html>
<body>
</body>
</html>

полученный HTML-код будет :

<html>
<body>
<span class="text"></span>
</body>
</html>

(Пренебрежение объявлением DOCTYPE, которое добавляет DOMDocument, если его нет)

ответил nickb 28 J0000006Europe/Moscow 2012, 18:27:36
0

В зависимости от того, для чего именно это вам нужно, вы можете сделать это другим способом - вместо этого превратить этот целевой файл .HTML в файл .PHP, заполнив его соответствующим содержимым, используя, скажем, функция называется get_span_contents(), вот так:

<html>
<body>
  <span class="text">
    <?PHP get_span_contents(); ?>
  </span>
</body>
</html>

Недостатком является то, что это будет сгенерировано для каждого запроса документа (возможно, в зависимости от схем кэширования), тогда как, если вы разделите его на два этапа (1. Запишите HTML, 2. Обслуживайте HTML отдельно), вы будет когда-либо делать поколение только один раз. В зависимости от того, насколько динамичен контент или насколько незначительны вычислительные затраты, это может не быть проблемой.

ответил Doug Kavendek 28 J0000006Europe/Moscow 2012, 18:42:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132