Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

[PHP] Включение значения переменной в строку.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 сам все делал, а я бы только в потолок поплевывал. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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";
?>


Изменил свой код, все заработало.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...