Замена значения в строке PHP

131
26 июля 2019, 16:20

Вот у меня есть строка:

$data = '<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tss</title>
</head>
<body>
<comment>text</comment>
</body>
</html>';

Мне нужно чтобы заместо text в теге comment было example. Как это можно реализовать?

Answer 1
$data = str_replace("text", "example", $data) 
Answer 2

Сделайте свой шаблонизатор.

Файл index.php:

<?php
echo renderTemplate('layout.php', [
    'comment' => 'example'
]);
function renderTemplate($template, $vars = [])
{
    ob_start();
    extract($vars);
    include $template;
    return ob_get_clean();
}

Файл layout.php (шаблон):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tss</title>
</head>
<body>
<comment><?= $comment ?></comment>
</body>
</html>
Answer 3

Вариант с использованием регулярных выражений:

$str = '<comment>text</comment>';
$repl = 'значение для замены';
$str = preg_replace('~(<comment>).+?(</comment>)~', '$1' . $repl . '$2', $str);
echo $str;
READ ALSO
Перенаправление на index.php четыре раза

Перенаправление на index.php четыре раза

При переходе на indexphp скрипт выполняется четыре раза

130
WP - проблема с url

WP - проблема с url

Есть сайт на wpПри переходе на страницу категории в url появлялась подпись category - site

121
Вычисления на стороне сервера/клиента

Вычисления на стороне сервера/клиента

Возник небольшой вопрос, как на практике делается следующая вещьПривожу максимально примитивный код для описания вопроса

121
Как без перезагрузки получить DOMhtml?

Как без перезагрузки получить DOMhtml?

Люди добрые, помогитеЕсть простой код: получаем html -> получаем из него элементы и выводим на экран

146