Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Преобразование функции в переменную

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Sergei88
Отправлено: 24 Мая, 2010 - 08:29:56
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Ни как не могу дойти сам, каким образом можно преобразовать функцию в переменную,
например вот такой вот код:
<?php
$file= "2";
function rte()
{
global $file;
print "$file";
}
rte();
?>
И чтобы в конце rte() стала переменной $file2. Спасибо.
 
 Top
alexspb
Отправлено: 24 Мая, 2010 - 08:43:09
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Sergei88, вопрос сформулирован очень коряво, непонятно про что

может, про возвращение значения?
тогда в функции используете return $file;

опишите, какую задачу решаете


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
Sergei88
Отправлено: 24 Мая, 2010 - 09:17:48
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Вообще задача такая, у меня имеется такой код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file= "67.txt";
  3. $fh= fopen($file, "r") or die ("не найден");
  4. $content= fread($fh, filesize($file));
  5. print "$content";
  6. $file2= "68.txt";
  7. $gg= fopen($file2, "a+") or die ("не найден файл2");
  8. fwrite($gg, $content);
  9. fclose($gg);
  10. fclose($fh);
  11. ?>
Все замечательно срабатывает. Все содержание из 67.txt копируется в 68.txt .
Проблема в том, что текст 67.txt так же генерируется через php скрипт. Поэтому копируется из 67.txt в 68.txt именно код этого php скрипта, а мне необходим конечный результат этого скрипта - обычный текст, так как он выглядит в браузере.
Поэтому, я предположил, что можно как-то попробовать вырвать этот кусок текста через функцию. Сначала так:
PHP:
скопировать код в буфер обмена
  1. $file= "67.txt";
  2. $fh= fopen($file, "r") or die ("не найден");
  3. $content= fread($fh, filesize($file));
  4. // потом вызвать весь текст из $content в функцию.
  5. function rte()
  6. {
  7.  global $content;
  8.  print "$content";
  9. }
  10. rte();
  11. // а дальше, я хотел преобразовать значение функции в переменную
  12. // чтобы смысл такой  был $abc= rte();
  13. $cot= fopen($abc, "r") or die ("не найден");
  14. $cot2= fread($cot, filesize($abc));
  15. $file2= "68.txt";
  16. $gg= fopen($file2, "a+") or die ("не найден файл2");
  17. fwrite($gg, $cot2);
  18. fclose($gg);
  19. fclose($cot);
  20. ?>
(Добавление)
Вот, что у меня получилось, только не сохраняется текст в 68.txt, но который прекрасно отображается в браузере(
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file= "67.txt";
  3. $fh= fopen($file, "r") or die ("не найден");
  4. $content= fread($fh, filesize($file));
  5.  
  6. function rte()
  7. {
  8.  global $content;
  9.  print "$content";
  10. }
  11.  
  12. $file2= "68.txt";
  13. $gg= fopen($file2, "a+") or die ("не найден файл2");
  14. fwrite($gg, rte());
  15. fclose($gg);
  16. fclose($fh);
  17. ?>


Отредактировано модератором: JustUserR, 24 Мая, 2010 - 15:08:39
Обрамил PHP-код в соответствующий BB-тег
 
 Top
CodeWarrior
Отправлено: 24 Мая, 2010 - 09:39:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




Цитата:
Проблема в том, что текст 67.txt так же генерируется через php скрипт. Поэтому копируется из 67.txt в 68.txt именно код этого php скрипта, а мне необходим конечный результат этого скрипта - обычный текст, так как он выглядит в браузере.

Если правельно понял то это eval() (смотреть документацию php)
Это то что я понял. Что вообще надо - понятно не до конца. Вам нужно выполнить код заключенный в переменную (взятый из файла), то тогда eval()... если нет, то понятней изъясняйтесь.
 
 Top
alexspb
Отправлено: 24 Мая, 2010 - 09:47:47
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Sergei88 пишет:
Все замечательно срабатывает. Все содержание из 67.txt копируется в 68.txt .
Проблема в том, что текст 67.txt так же генерируется через php скрипт. Поэтому копируется из 67.txt в 68.txt именно код этого php скрипта, а мне необходим конечный результат этого скрипта - обычный текст, так как он выглядит в браузере.

Вы явно не в том направлении думаете, смысл выполняемых операция непонятен и похоже на изобретение велосипеда

1) копировать зачем? ну а если нужно - copy()

2) почему не скопировать в 67.php а затем include()

и т.п.


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
JustUserR
Отправлено: 24 Мая, 2010 - 15:17:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Sergei88 пишет:
Ни как не могу дойти сам, каким образом можно преобразовать функцию в переменную
Понятно то есть вы генерируете определенный PHP-код на основе шаблонного файла и потом хотите исполнить его Конечно подключать сгенерированный PHP-код просто так нельзя поскольку предыдущий PHP-код не сможет его контролировтаь и переключаться с ним - и например если вы включите в основном PHP-коде буферазацию то подключаемый PHP-код может ее спокойно выключить Таким образом вам требуется проанализировать подключаемый PHP-код и преобразовать его в функция которая будет согласанована с основой программой - то есть вы считываете шаблонный файл потом делаете в нем определенную замену и подстановку - после чего анализируете код и разбиваете его на функции которые будете создавать с помощью create_function Кстати перед преобразование PHP-кода в исполняемый вид можете проверить его на синтаксическую правильность с помощью http://php.su/functions/?runkit-lint
А если вам требуется просто работа с динамическими функциями и их изменение во время выполнения PHP-скрипта - то смотрите вот эту группу функций http://php.su/functions/?cat=runkit которая в том числе позволяет напрямую преобразовать функцию в переменную


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB