За последние 24 часа нас посетили 31994 программиста и 1756 роботов. Сейчас ищут 992 программиста ...

Скорее всего про Eval()

Тема в разделе "Прочие вопросы по PHP", создана пользователем Vladsss, 18 июн 2007.

  1. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Вопрос в следущем
    Вот описание переменных
    PHP:
    1.  
    2. $a1="1peremen1"; //
    3. $a2="txt txt $a1 txt txt"; // текст возможно содержащий код php
    4.  
    Нужно перменной $a3 присвоить значение $a2 содержащие в себе значение $a1
    то есть в $a3 получить строку вида.
    PHP:
    1. txt txt 1peremen1 txt txt
    Конкатинация строк при помощи
    PHP:
    1. .
    не пойдет. Так же не поможет в рамках моей задачи, поиск-замена переменных!
    Подскажите как это реализовать. Кажется что нужно пользоваться eval
     
  2. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    в вашем случае искомая строка уже в $a2
     
  3. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Немного неправильно вопрос написал. Есть как раньше, то конечно все работает.
    Только вот переменная $a2 берется из БД.
    Вопрос немного подругому теперь
    1. есть переменная $a1="1peremen1";
    2. Открывается БД, и берется значение из Таблицы
    [sql]$result = mysql_query("SELECT a2 FROM tbl WHERE id='1'");
    $f=mysql_fetch_array($result);[/sql]
    То есть получаем
    PHP:
    1. $f[a2] // содержит txt txt $a1 txt txt
    3. Теперь нужно $a3 присвоить значения txt txt 1peremen1 txt txt, используя $a1 и $a2

    Что бы не делал получаю что не вносится значение $a1

    Заранее благодарен!
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  5. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    Код (Text):
    1. $a3 = eval ('return $a1;');
    но я бы очень много думал перед тем как решиться хранить в базе используемый код. и, скорее всего, не решился бы...
     
  6. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    А почему нельзя хранить в Базе исполняемый код?
     
  7. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    Данный способ не подходит, так как могут быть десятки переменных. И на каждую писать такое нет смысла!

    Не понял зачем?
     
  8. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    PHP:
    1.  $a3 = str_replace(array('$a1','$a2','$a3'), array($a1,$a2,$a3), $f['a2']);
     
  9. Vladsss

    Vladsss Активный пользователь

    С нами с:
    17 июн 2007
    Сообщения:
    22
    Симпатии:
    0
    А если в БД храниться не txt txt txt $a1 txt, а txt txt <?=$a1?>
    В рамках моей задачи легче сделать?
     
  10. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. $a1 = 'привет';
    3.  
    4. $data = file_get_contents('data.txt');
    5. $a3 = eval ('return "' . str_replace('"', '\"', $data) . '";');
    6.  
    7. print $a3;
    8. ?>
    data.txt
    Код (Text):
    1. txt 'txt $a1"