Автор Тема: Как заменить значения в полученной строке?  (Прочитано 3750 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн agat

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
title=$TITLE&url1=$URL&email2=$EMAIL - прочитанная из файла строка (каждый раз разная, с разным порядком следования и разными именами переменных)

$TITLE,$URL,$EMAIL,$DESC - постоянно существующие переменные (одинаковые в скрипте и полученной строке)

Как заменить значения переменным в полученной строке не зная порядка следования и имени переменной? Может какая фунция есть?

Если бы эта строка была в теле скрипта - тогда все сделается автоматом, всё просто. А как быть в такой ситуации?



Сергей.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
А на какие значения ты собираешься менять? По какому критерию определяешь?
TANSTAAFL

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
$str=~s/a/b/ - замена в строке $str буквы а на b.
Ты не мог бы пример привести того, что тебе нужно?

Оффлайн agat

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
В считанной строке (title=$TITLE&url1=$URL&email2=$EMAIL)нужно заменить символьные куски текста ($TITLE,$URL,$EMAIL) на значения одноименных переменных скрипта ($TITLE,$URL,$EMAIL).

Напомню, что порядок следования символьных переменных "$TITLE,$URL,$EMAIL" в считываемой строке может меняться.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
Может какая фунция есть?


Учи регулярные выражения и не морочь людям голову.
Sorry, за грубость.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн OBOLTUS

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 102
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
делай себе ассоциативный массив вида:
array[\'title\'=>\'\', \'url\'=>\'\']
И ползуйся функциями - unserialize(), serialize(); Про нее можно в мануале прочесть. Она преобразует такой массив в строку. Обратная функция возвращает массив к жизни. Правда это в PHP:)))
PHP - Probably Hopeless Pont

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля

$str=\'title=$TITLE&url1=$URL&email2=$EMAIL\';
print "$str\\n";
$TITLE="myTittle";
$URL="myURL";
$EMAIL="myEmail";

foreach(TITLE,URL,EMAIL)
{     $str=~s/\\$$_/${$_}/;
}
print "$str\\n";
« Последнее редактирование: 25 Июля 2002, 20:03:56 от Evgeny »

ю юю

  • Гость
$str=\'title=$TITLE&url1=$URL&email2=$EMAIL\';
$str=\'"\'.$str.\'"\';
print "$str\\n";
  $TITLE="myTittle";
  $URL="myURL";
  $EMAIL="myEmail";
 
  $rez= eval $str;
  print $rez;

#Не делайте так !!!!

юю ю

  • Гость
$str=\'title=$TITLE&url1=$URL&email2=$EMAIL\';
$str=\'"\'.$str.\'"\';
print "$str\\n";
  $TITLE="myTittle";
  $URL="myURL";
  $EMAIL="myEmail";
 
  $rez= eval $str;
  print $rez;

#Не делайте так !!!!

kak я

  • Гость
$str=\'title=$TITLE&url1=$URL&email2=$EMAIL\';
print "$str\\n";
  $TITLE="myTittle";
  $URL="myURL";
  $EMAIL="myEmail";
 
  $str=~s/\\$(.*?)(&|$)/${$1}$2/g;
  print $str;
#ююю делайте так МОЖЕТ БЫТЬ :(

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28