Найдите элемент по id и замените его содержимое на php

Я хочу использовать PHP для поиска содержимого файла для элемента с определенным идентификатором, замены его содержимого и сохранения изменений в файле. Я могу загрузить в HTML и снова сохранить его, но у меня возникли проблемы с поиском и заменой (в настоящее время мы пытаемся использовать preg_replace).

Вот что я до сих пор:

<?php // read in the content $file = file_get_contents('file.php'); // parse $file, looking for the id. $replace_with = "id='" . 'myID' . "'>" . $replacement_content . "<"; if ($updated = preg_replace('/id\=\"myID\"\>.*?\</', $replace_with, $file)) { // write the contents of $file back to index.php, and then refresh the page. file_put_contents('file.php', $updated); } 

Однако, пока он успешно загружает контент и записывает его (я протестировал его, написав отдельный файл), похоже, что обновление $ update фактически не меняется.

Есть идеи?

Related of "Найдите элемент по id и замените его содержимое на php"

Вы можете использовать DOMDocument PHP для этого:

 $html = new DOMDocument(); $html->loadHTMLFile('file.php'); $html->getElementById('myId')->nodeValue = 'New value'; $html->saveHTMLFile("foo.html"); 

просто думая, почему вы избегаете «=», это должно быть /id=\"myID\"\>.*?\</

Я думаю, что у вас есть проблемы с побегом 😉

попробуй это:

 $replace_with = 'id="myID">' . $replacement_content . '</'; if ($updated = preg_replace('#id="myID">.*?</#Umsi', $replace_with, $file)) { // write the contents of $file back to index.php, and then refresh the page. file_put_contents('file.php', $updated); }