Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как заменить переменные в строке на значения.

Сообщения:  [1-10]   [11-18] 

 
 автор: valenok   (21.06.2006 в 18:32)   письмо автору
 
   для: cheops   (21.06.2006 в 18:26)
 

Это не свосем то что ему надо.
Перемнная $prefix генерируется скриптом.
Дальше и зфайла достаём строку: CREATE TABLE $prefix tbl
Тоесть надо создать таблицу запросом CREATE TABLE $prefix tbl
только заменить "$prefix" на значение переменной сгенерированной во время исполнения скрипта.

А хотя вообще можно такое:

<?php 
  $line 
"CREATE TABLE 'ww1_anketa' "
  
$line str_replace("$prefix",$prefix,$line); 
  echo 
$line// "CREATE TABLE 'ww2_anketa' " 
?>

   
 
 автор: cheops   (21.06.2006 в 18:26)   письмо автору
 
   для: epc   (21.06.2006 в 17:07)
 

Такая функция есть - str_replace(), но для её работы потребуется подстрока замены, т.е. мы не можем просто вставить - нужно существующую подстроку заменить на новую
<?php
  $line 
"CREATE TABLE 'ww1_anketa' ";
  
$line str_replace("ww1_","ww2_",$line);
  echo 
$line// "CREATE TABLE 'ww2_anketa' "
?>

   
 
 автор: valenok   (21.06.2006 в 17:59)   письмо автору
 
   для: epc   (21.06.2006 в 17:50)
 

Лучше как тебе удобней
если скрипт не большой
--
Разница может быть только во времени.

   
 
 автор: epc   (21.06.2006 в 17:50)   письмо автору
 
   для: valenok   (21.06.2006 в 17:36)
 

а как лучше , как у тебя или как у меня ?

   
 
 автор: epc   (21.06.2006 в 17:38)   письмо автору
 
   для: epc   (21.06.2006 в 17:30)
 

Сработало следующим образом строку в текстовом файле поменял на


CREATE TABLE '{$dbprefix}anketa' 


всем большое спасибо, особенно валенку, понимаешь все так как надо и с полуслова.

   
 
 автор: valenok   (21.06.2006 в 17:36)   письмо автору
 
   для: epc   (21.06.2006 в 17:30)
 

CREATE TABLE '$dbprefix'.'anketa'

   
 
 автор: epc   (21.06.2006 в 17:30)   письмо автору
 
   для: epc   (21.06.2006 в 17:22)
 

Сработало следующим образом

выполнил функцию
eval("\$line = \"$line\";");
и все названия переменных в $line поменялись на значения.

но вот загвоздка
если берем строку
CREATE TABLE '$dbprefix anketa' - с пробелом, то после выполнения функции отлично меняет на
CREATE TABLE 'ww1_ anketa'

но как сделать, чтобы не оставалось пробела ?

причем текстовый файл т.е. строку CREATE TABLE '$dbprefix anketa' я могу менять как угодно

   
 
 автор: valenok   (21.06.2006 в 17:27)   письмо автору
 
   для: epc   (21.06.2006 в 17:22)
 



$lina = eval($line);
mysql_query($line);

   
 
 автор: epc   (21.06.2006 в 17:22)   письмо автору
 
   для: Unkind™   (21.06.2006 в 17:03)
 

Дело в том что я не могу писать сам запрос в исполняемом файле, он(запрос) берется из другого текстового файла построчно. А в исполняемом мне нужно только подставить значение вместо переменной в каждую строку.

   
 
 автор: epc   (21.06.2006 в 17:07)   письмо автору
 
   для: valenok   (21.06.2006 в 16:58)
 

дело в том что я не могу написать
mysql_query("CREATE TABLE '".$pref."_anketa' ;");

я могу написать
mysql_query($line)
а $line в свою очередь будет равна "CREATE TABLE '".$pref."_anketa' ;" эти данные считываются из текстового документа, в котором эта переменнная просто набор символов.

так вот есть ли функция которая сможет сделать так

$pref = "ww1";
$line2 = ФУНКУЦИЯ_ЗАМЕНЯЮЩАЯ_ПЕРЕМЕННЫЕ_НА_ЗНАЧЕНИЯ ($line);

и $line в итоге будет "CREATE TABLE 'ww1_anketa' ;

   

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования