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


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

Например:

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

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

Author: kenorb, 2012-06-28

2 answers

Вы можете сделать это с помощью DOMDocument PHP, например:

// 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, если его нет)

 4
Author: nickb, 2012-06-28 14:27:36

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

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

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

 1
Author: Doug Kavendek, 2012-06-28 14:42:27