Чтение строки PHP из строки MySql с помощью Codeigniter - PullRequest
1 голос
/ 28 февраля 2012

У меня очень большая таблица MySql: более 900 строк разных предложений. Я хотел бы поместить <?php echo $this->session->userdata('firstname')?> в некоторые из моих рядов. Например в:

Continue tes efforts <?php echo $this->session->userdata('firstname')?> et imagine si tes travaux étaient toujours bien faits!`

И, на мой взгляд, когда я делаю echo $data['sentence'], я бы хотел получить

Continue tes efforts ***ROGER*** et imagine si tes travaux étaient toujours bien faits!

Мне нужно разделить предложение в моей базе данных ( id , part1 , part 2 ) (мне нужно «вырезать» мое предложение в строке базы данных, когда мне нужно получить FIRSTNAME), и вот что я делаю:

echo $data['part1'];
echo $this->session->userdata('firstname');
echo $data['part2'];

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

Ответы [ 4 ]

3 голосов
/ 28 февраля 2012

вы должны использовать printf или sprintf для таких вещей:

$string = "Continue tes efforts %s et imagine si tes travaux étaient toujours bien faits!";
printf($string, $this->session->userdata('firstname');
1 голос
/ 28 февраля 2012

Что вы, вероятно, хотите, это строка в базе данных, которая содержит заполнитель для имени.

Помимо sprintf.

Что вы можете сделать, это поставить кодовое имя для вашей переменнойв вашем предложении.Таким образом, ваше предложение будет выглядеть так:

Теперь вы можете сделать простое str_replace для строки, заменив | firstname | на $ this-> session-> userdata ('firstname')

Таким образом, вы также можете добавить переменные другого типа в строку и просто написать функцию, которая заменяет каждое кодовое имя на правильное значение.

0 голосов
/ 28 февраля 2012

Или используйте заполнитель, например:

Continue tes efforts <%FIRSTNAME%> et imagine si tes travaux étaient toujours bien faits!

Затем при выводе:

echo str_replace('<%FIRSTNAME%>',$this->session->userdata('firstname'),$data['sentence']);

Также помните, что массивы можно передавать в str_replace (), чтобы можно было менять несколько значений.

0 голосов
/ 28 февраля 2012
$string = "Continue tes efforts %s et imagine si tes travaux étaient toujours bien faits!";
echo sprintf($string, $this->session->userdata('firstname'));

Это должно работать! :)

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