2014-03-13 5 views
1

У меня была небольшая структура для быстрого создания формы в PHP, все работает правильно, когда я пишу код вручную, но у меня проблемы, когда я хочу включить код из txt-файла (я сделал эту опцию для своего пользователя, просто написать строку в TXT), проверьте мой пример для лучшего понимания:PHP-переменная из txt-файла

$my_test_variable = "How are you?"; 
$show_this = "|Example 1|Example 2|$my_test_variable|"; 
$a = explode ("|",$show_this); 
echo "First example: $a[1] Second example: $a[2] Variable to show: $a[3]"; 
// This example output: First example: Example 1 Second example: Example 2 Variable to show: How are you? 

Второй пример:

//test.txt -> |Example 1|Example 2|$my_test_variable| 

$show_this = file_get_contents ("test.txt"); 
$a = explode ("|",$show_this); 
echo "First example: $a[1] Second example: $a[2] Variable to show: $a[3]"; 
// This example output: First example: Example 1 Second example: Example 2 Variable to show: $my_test_variable 
// This is problematic because I want that my $my_test_variable show "How are you"; 

у вас есть идея, как я могу поместить переменную $ в текстовый файл и когда file_get_contents угроза это как переменная, а не только строка?

+1

Это что-то вроде [Eval] (http://uk.php.net/eval) делает, но, пожалуйста, не используйте его. Это огромная дыра в безопасности. Пользователи могут делать все, что захотят, с помощью вашего скрипта. – machineaddict

+0

Я только что узнал [этот ответ] (http://stackoverflow.com/a/283232/1057527), который именно то, что вам нужно. – machineaddict

ответ

3

Вы можете попробовать:

$a = explode ("|",$show_this); 
foreach ($a as &$val) { 
    if (strpos($val, '$') === 0) { 
    $val = ${substr($val, 1)}; 
    } 
} 

echo "First example: $a[1] Second example: $a[2] Variable to show: $a[3]"; 
Смежные вопросы