Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
at_last
Зарегистрирован: 26.08.2006 Сообщения: 4
|
Добавлено: Сб Авг 26 2006 13:38 Заголовок сообщения: [PHP] Включение значения переменной в строку. |
|
|
Доброго всем здравия.
Есть строковая переменная $string, которая получает значение "Where are $number apples." из БД. Есть кусок кода:
Код: |
//запрос из БД
...
$number=5;
echo $string;
...
|
Как можно сделать так, чтобы выводилось:
"Where are 5 apples."
а не:
"Where are $number apples." |
|
Вернуться к началу |
|
|
pa_han87
Зарегистрирован: 14.04.2006 Сообщения: 19
|
Добавлено: Сб Авг 26 2006 14:46 Заголовок сообщения: |
|
|
Тупо, но срабатывает наверняка:
$string="Where are ".$number." apples"
Или сосвем жестко:
$string="Where are ".strval($number)." apples"
Или пиши через одинарные кавычки ('), но у меня этот рекомендуемый всеми способ, бывало, глючил.
А вообще-то ответ тебе должен был быть: RTFM! |
|
Вернуться к началу |
|
|
at_last
Зарегистрирован: 26.08.2006 Сообщения: 4
|
Добавлено: Сб Авг 26 2006 17:08 Заголовок сообщения: |
|
|
Во второй строке моего первого сообщения было написано откуда берется значение для $string. Так что "тупой" метод для меня неприемлем. |
|
Вернуться к началу |
|
|
Alex_pm
Зарегистрирован: 26.08.2006 Сообщения: 55
|
Добавлено: Сб Авг 26 2006 22:53 Заголовок сообщения: |
|
|
А если в БД хранить "Where are %n apples." и выводить printf-ом или sprintf-oм в строку. |
|
Вернуться к началу |
|
|
at_last
Зарегистрирован: 26.08.2006 Сообщения: 4
|
Добавлено: Сб Авг 26 2006 23:50 Заголовок сообщения: |
|
|
sprintf - хорошо, но в БД хранятся самые разнообразные строки с разными названиями переменных. Пока что решил проблему созданием массива и использованием str_replace() в цикле foreach(). Хотелось, конечно, чтобы php сам все делал, а я бы только в потолок поплевывал. |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Вс Авг 27 2006 03:28 Заголовок сообщения: |
|
|
То есть в бд записана строчка "Where are $number apples"?
Могу посоветовать вариант:
eval "\$string = qq($string)";
после того, как в $number записано нужное значение. Хотя нет, это для перла. Есть ли эвал в PHP? _________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
at_last
Зарегистрирован: 26.08.2006 Сообщения: 4
|
Добавлено: Вс Авг 27 2006 13:44 Заголовок сообщения: |
|
|
Aragaer, спасибо тебе.
Откопал функцию eval() в мануале по PHP:
http://ru.php.net/manual/ru/function.eval.php
С примером:
Код: | <?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?> |
Изменил свой код, все заработало. |
|
Вернуться к началу |
|
|
|