powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Строку в одинарных кавычках обработать как в двойных
14 сообщений из 14, страница 1 из 1
Строку в одинарных кавычках обработать как в двойных
    #39090117
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть код:
Код: php
1.
2.
3.
$var = 1;
$str='var=$var';
echo "text [$var]";


Необходимо, чтобы в браузер вывелась строка вида text [var=1] . Как это сделать, изменив только третью строку? Приведённый код выводит text [var=$var] .
Спасибо.
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090136
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другими словами: как вывести содержимое $str так, как если бы оно было присвоено в двойных кавычках?
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090171
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_KashkinПриведённый код выводит text [var=$var] .Что за язык программирования используете такой хитрый, что он путает переменные? ;-)
PHP выведет text [1]
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090191
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

мда, огромный пардон :)

вот что я подразумевал:
Код: php
1.
2.
3.
$var = 1;
$str='var=$var';
$str2="text [$str]";
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090198
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo $str2;
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090693
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_KashkinДругими словами: как вывести содержимое $str так, как если бы оно было присвоено в двойных кавычках?Подстановка переменных происходить не в момент использования строки, а в момент присваивания. Потом уже поздно.
Ну разве что так:
Код: php
1.
echo str_replace('$var',$var,"text [$str]")
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090721
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vasiliy_KashkinЕсть код:
Код: php
1.
2.
3.
$var = 1;
$str='var=$var';
echo "text [$var]";


Необходимо, чтобы в браузер вывелась строка вида text [var=1] . Как это сделать, изменив только третью строку? Приведённый код выводит text [var=$var] .
Спасибо.
Ну ваш код выводит не то, что вы говорите, а text[1];
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39090737
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное есть какая то катастрофичная необходимость, но все таки, почему именно одинарные кавычки? (так, интересно стало)
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39091246
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,
Одинарные кавычки здесь были использованы чисто для моделирования ситуации.
Ну, допустим у нас в БД хранится шаблон некоторого письма, например:
" Здравствуйте, $username ! Вы отправили запрос на регистрацию $date. "
Нужно извлечь этот шаблон в строку и обработать так, чтобы подставились значения соотв. переменных из вызывающего кода. Можно конечно, как было отвечено выше, использовать str_replace, но если бы строку можно было обработать как будто бы записав в двойные кавычки, по-моему было бы красивее.
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39091269
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а потом придет "Жора", поменяет в коде $var на $bar и все отвалится
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39091298
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_KashkinМожно конечно, как было отвечено выше, использовать str_replaceИМХО самый простой вариант.

Vasiliy_Kashkinесли бы строку можно было обработать как будто бы записав в двойные кавычки, по-моему было бы красивее.
Можно как-то так:
Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$template = 'Здравствуйте, $username ! Вы отправили запрос на регистрацию $date.';
$username = 'Вася';
$date = 'сегодня';

eval("\$result = \"$template\";");
echo $result;



Красивее или корявее - решайте сами.
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39091700
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

спасибо, но слышал, что использование eval создаёт дыру в безопасности. Так ли это?
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39091710
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin,

Проблема не в eval, а в той фигне, которую передаёте в качестве аргумента. Если имеется возможность бесконтрольно пихать в шаблон и подставляемые в него данные любой контент (включая пхп-код), то да, дыра. Если же шаблоны написаны безопасно, а входные данные прошли проверку на допустимость - то проблем безопасности нет.
...
Рейтинг: 0 / 0
Строку в одинарных кавычках обработать как в двойных
    #39092339
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleМожно как-то так:
Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$template = 'Здравствуйте, $username ! Вы отправили запрос на регистрацию $date.';
$username = 'Вася';
$date = 'сегодня';

eval("\$result = \"$template\";");
echo $result;



Красивее или корявее - решайте сами.Добавьте в текст в вашем шаблоне кавычки, и eval сломается...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Строку в одинарных кавычках обработать как в двойных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]