2016-07-30 2 views
0

Я был поражен. Я не нашел ответа на Google для ответа. Так что в основном у меня есть PHP-код, который должен быть сохранен в переменной как строка. К сожалению, PHP признать открытие и конечный тег не в виде строки, но код PHP ... Я хочу, чтобы это как строка :)PHP-код в строке

 $settings_string = 
        ' 
        <?php 
         //Locker ID 
         $userToSearch = '.$_POST["usertosearch"].'; 

         //User Folder 
         $userFolder = '.$folder.'; 

         //User Link 
         $userLink = '.$_POST["userlink"].'; 

         // Username and pass 
         $affiliateuser = '.$_POST["affiliateuser"].'; 
         $affiliatepassword = '.$_POST["affiliatepassword"].'; 
        ?> 
        '; 
+0

Почему вы хотите это сделать? Пожалуйста, поделитесь своей целью, возможно, вы станете лучше, чем этот вариант. – C2486

+0

Я хочу «fwrite» его на текстовом документе. –

+0

«К сожалению, PHP распознает открывающий и завершающий теги», Нет, это не так. Вы используете один и тот же тип кавычек для инкапсуляции в своей строке, чтобы завершить инкапсуляцию. – chris85

ответ

-2

Ваш ищет eval

<?php 
    $settings_string =' 
        //Locker ID 
        $userToSearch = '.$_POST["usertosearch"].'; 

        //User Folder 
        $userFolder = '.$folder.'; 

        //User Link 
        $userLink = '.$_POST["userlink"].'; 

        // Username and pass 
        $affiliateuser = '.$_POST["affiliateuser"].'; 
        $affiliatepassword = '.$_POST["affiliatepassword"].'; 
       '; 
eval($settings_string); 
+0

Не сработало :( –

+0

Никогда не используйте' eval' по предоставленным пользователем данным. 'Конструкция языка eval() очень опасна, поскольку позволяет выполнять произвольный PHP-код, поэтому его использование не рекомендуется. Если вы тщательно проверили, что нет другого выбора, кроме использования этой конструкции, обратите особое внимание на то, чтобы не пропускать ни одного пользователя предоставил данные в него, предварительно не проверив его заранее.' – chris85

-1

вы можете использовать, как это , если и сообщите свою цель. поэтому я могу дать вам лучше этого.

$settings_string =' 
    <?php 
    //Locker ID 
    $userToSearch = \'.$_POST["usertosearch"].\'; 

    //User Folder 
    $userFolder = \'.$folder.\'; 

    //User Link 
    $userLink = \'.$_POST["userlink"].\'; 

    // Username and pass 
    $affiliateuser = \'.$_POST["affiliateuser"].\'; 
    $affiliatepassword = \'.$_POST["affiliatepassword"].\'; 
    ?> 
'; 

Теперь вы должны использовать как этот

$file = fopen('file_name.php', 'w'); 

fwrite($file, $settings_string); 
+0

Я думаю, что это идеально для вас, чтобы использовать это –

0

Если вы хотите, чтобы значение $_POST впрыскивается там вам все еще нужно процитировать ее должным образом на выходе.

$settings_string = 
       ' 
       <?php 
        //Locker ID 
        $userToSearch = "'.$_POST["usertosearch"].'"; //add them quotes!!!! 

        //User Folder 
        $userFolder = "'.$folder.'"; 

        //User Link 
        $userLink = "'.$_POST["userlink"].'"; 

        // Username and pass 
        $affiliateuser = "'.$_POST["affiliateuser"].'"; 
        $affiliatepassword = "'.$_POST["affiliatepassword"].'"; 
       ?> 
       '; 

Предполагаю, что в настоящее время на вашем выходе будет это.

 $userToSearch = user; 

Когда вместо этого вы хотите

 $userToSearch = "user"; 

Вы увидите дополнительные двойные кавычки, чтобы правильно процитировать строки в выходном файле. Этот файл должен иметь действительный синтаксис.

В качестве примечания, если какое-либо из значений сообщений содержит ", у вас возникнут проблемы, если вы не сделаете addslashes() для них.

Например

$userLink = "'.$_POST["userlink"].'"; 

Пусть это $_POST["userlink"] = '<a href="#">link</a>' ИЛИ

$userLink = "<a href="#">link</a>"; 

Смотрите вопрос с этим. Когда вы захотите этого

$userLink = "<a href=\"#\">link</a>"; 
Смежные вопросы