2017-02-11 4 views
0

В настоящий момент, если я запустил этот скрипт, он создает html-страницу, как и ожидалось, хотя у меня возникают проблемы, если взять ее на учетные переменные, например запрос $ _GET.file_put_contents - содержат пользовательские переменные

Это внутренняя речевая метка и отправляется на новую страницу моего сайта с использованием file_put_contents, моя цель состоит в том, чтобы иметь код переменной, определенный на странице, откуда он отправлен.

Вкратце; на странице AI есть код, который создает новый файл, на странице AI может сделать что-то вроде /directory/to/page /? SET = Hello + from + stack, и он создаст новый файл, и там, где он говорит var code знак равно Я хочу, чтобы это вместо запроса на получение, поэтому было бы var code = 'Hello from stack';

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset='UTF-8'> 
    <script> var code = '<?php echo $php_variable; ?>';</script> 
    // This is what I'm having trouble with, 
</head> 
<body> 
    <div class='container'> 
    <pre class='code-sample'> 
    <div class='heading'>CODE</div> 
    <div class='code-wrap'> 
     <code></code> 
    </div> 
    </pre> 
</div> 
</body> 
</html> 

Это код, который я использую для создания файла;

$file = 'it.html'; 
$data = " 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset='UTF-8'> 
    <script> var code = 'I WANT THIS TO BE THE VARIABLE $GET I DEFINED FROM PAGE A';</script> 
</head> 
<body> 
    <div class='container'> 
    <pre class='code-sample'> 
    <div class='heading'>CODE</div> 
    <div class='code-wrap'> 
     <code></code> 
    </div> 
    </pre> 
</div> 
"; 

file_put_contents($file, $data); 
+0

'file_put_contents()' не нравится 'Е()'. В нем нет какой-либо подстановки пользовательской переменной. Вы просто составляете строку, как хотите, и кормите ее этим. Вы можете узнать больше [здесь] (http://php.net/manual/en/language.types.string.php). –

ответ

1

Если у вас есть $GET['SET'], содержащий строку, то все, что вы должны помнить, что при использовании массивов в двойных кавычках вы либо ссылки на массив в качестве

$_GET[SET]  // without the quotes around the index name 

Или

{$_GET['SET']} // wrap the array in {}, this is my preference 

Так что это должно делать то, что вы хотите

$_GET['SET'] = 'Hello from stack';  // just here for testing 

$file = 'it.html'; 
$data = " 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset='UTF-8'> 
    <script> var code = '{$_GET['SET']}';</script> 
</head> 
<body> 
    <div class='container'> 
    <pre class='code-sample'> 
    <div class='heading'>CODE</div> 
    <div class='code-wrap'> 
     <code></code> 
    </div> 
    </pre> 
</div> 
"; 

Результаты

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset='UTF-8'> 
    <script> var code = 'Hello from stack';</script> 
</head> 
<body> 
    <div class='container'> 
    <pre class='code-sample'> 
    <div class='heading'>CODE</div> 
    <div class='code-wrap'> 
     <code></code> 
    </div> 
    </pre> 
</div> 
Смежные вопросы