preg_replace и require на php файл

Radko

Registered
Здравейте, пак опрях на камък :D

Мога ли преди да require-на даден файл, с прег_реплейс да заменя някои неща от него (не да променя самия файл, а просто при зареждането му да се променя). Идеята ако не ме разибрате е такава - примерно имам файл index.php и в него има нещо такова

Код:
<html>
<head></head>
<body>
Здрасти {name}
</body>
</html>

И като си го require във View с require 'view/index.php'; да ми замества {name} с $name примерно. Не ползвам никакви фреймуърци, провя си собствена мвц системка, за фъна :D

Предполагам трябва да взема контента на файла, да го вкарам в стринг, след това да го прег_реплейс и накрая да го изкарам с echo. Ама няма идея как да взема съдържанието на файла. Помощ?
 

Radko

Registered
Значи успях да го направя ето така, първо взимам съдържанието на файла

Код:
            $da = file_get_contents('views/index/index.php');

            $old= '/\{(.*)\}/';
            $php = '<?php echo $\\1;  ?>';

            $da = preg_replace($old, $php, $da);
            echo $da;

Обаче сега проблема е, че като го изкарам с echo ми излиза заедно със html кода и php кода <?php echo $name; ?>

Как мога да направя, да не ми го принтира директно, ами да го изпълнява?
 

Radko

Registered
Да, пробвах с eval но ми изкарва следния ерор

Parse error: syntax error, unexpected '<' in D:\VertrigoServ\www\***\libs\View.php(46) : eval()'d code on line 1

На line 46 ми е точно echo eval($da);
 

kopura

Registered
Radko каза:
Да, пробвах с eval но ми изкарва следния ерор

Parse error: syntax error, unexpected '<' in D:\VertrigoServ\www\***\libs\View.php(46) : eval()'d code on line 1

На line 46 ми е точно echo eval($da);

PHP:
eval(\$da);
 

Radko

Registered
kopura каза:
Radko каза:
Да, пробвах с eval но ми изкарва следния ерор

Parse error: syntax error, unexpected '<' in D:\VertrigoServ\www\***\libs\View.php(46) : eval()'d code on line 1

На line 46 ми е точно echo eval($da);

PHP:
eval(\$da);

Всъщност и така ми даде грешка, но го направих така

eval("\$da = "$da";");
echo $da;

И стана. +1 все пак, помогна ми, мерси ;)
 

Горе