Ссылка на переменную PHP внутри текстового значения mysql и возвращаемого значения - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь заменить ссылку на переменную на ее значение при получении из базы данных.

Exanple;(хранится в поле базы данных)

Hello, {$Query['name']}.<br /><br />How are u doing today?

Эта текстовая строка, которая находится внутри базы данных, когда я ее получаю, не заменяет $Query['name'] своим значением.Но он показывает, как именно он хранится в базе данных.

Есть ли способ, я могу сохранить несколько ссылок на переменные в базе данных и вернуть его и заменить имя переменной на ее значение?

Iиспользуйте это для создания текстовых шаблонов.

РЕДАКТИРОВАТЬ: Не уверен, если я объяснил это хорошо, но ссылка на переменную хранится в базе данных.Я использую PHP, чтобы получить его, и когда я делаю и повторяю его, он отображает имя переменной вместо определенного значения на этой странице.

Ответы [ 4 ]

0 голосов
/ 21 февраля 2019

Чтобы использовать ваши существующие данные, вам нужно заставить PHP оценить $Query['name'] как переменную.Предполагая, что $string поступает из базы данных:

eval('echo "'.$string.'";');
//or
eval('$string = "'.$string.'";');
echo $string;

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

Hello, {name}.<br /><br />How are u doing today?

Затем просто зациклите $Query и замените ключи значениями:

foreach($Query as $search => $replace) {
    $string = str_replace("{{$search}}", $replace, $string);
}

str_replace может работать с массивами, но нам нужнодобавить {} к клавишам.Они удваиваются {{}}, потому что они имеют особое значение в строках в двойных кавычках, и нам нужны буквенные символы.Вы также можете использовать '{'.$search.'}'

0 голосов
/ 21 февраля 2019

В PHP вы можете отобразить переменную с помощью следующего:

Hello, <?php echo $Query['name']?>.<br /><br />How are u doing today?
0 голосов
/ 21 февраля 2019

Храните в своей БД следующим образом:

Hello, {name}.<br /><br />How are u doing today?

Чтобы заменить значение:

echo str_replace("{name}", $Query['name'], $db_string);

0 голосов
/ 21 февраля 2019

J Квест, вы можете попробовать использовать eval (http://php.net/manual/en/function.eval.php)

eval("\$str = \"Hello {$Query['name']}. How are u doing today?\";"); echo $str;

или еще лучше, сделайте то, что рекомендовал EternalHour

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