1

我正在尝试在文件中编写 php 脚本。肯定会出现解析错误。帮助我将 php 代码分配给 php 变量,以便我可以将其写在代码上。

<?php

$myFile = "testFile1.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "<?php some php code with functions ?>";
fwrite($fh, $stringData);
fclose($fh);

?>
4

5 回答 5

3

将要写入文件的字符串放在单引号中,否则将被解释。

$stringData = '<?php some php code ?>';

或者,您可以转义代码,有关详细信息,请参阅 php 手册中的“字符串”一章:http: //php.net/manual/en/language.types.string.php

于 2012-12-12T19:58:22.177 回答
2

使用单引号:

<?php

$myFile = "testFile1.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = '<?php some php code ?>';
fwrite($fh, $stringData);

fclose($fh);

?>
于 2012-12-12T19:58:55.177 回答
1

例如:

    <?php

    $myFile = "testFile1.php";
    $fh = fopen($myFile, 'w') or die("can't open file");
    $var1 = 'value1';
    $var2 = 'value2';

    $stringData =
        '<?php $var1 = ' . $var1 . ';
        $var2 = ' . $var2 . ';
        do_something($var1); ?>';

    fwrite($fh, $stringData);

    fclose($fh);

?>

所以只需使用单引号来确保 php 不会将 vars 解析为 php vars 本身,并使用连接将 var 值放入文件中。在某些情况下,您也可能使用var_export($var, true)函数。

于 2012-12-12T19:59:33.370 回答
0

你为什么想做这个?无论如何,你不能。但是您可以向 PHP 索要赎金临时文件名,创建该文件,在那里编写代码,然后include是该文件。

此外,您需要使用单引号,否则 PHP 将尝试解释它。

$phpCrapThatWillMakeSiteVulnerableToHacking = '<?php echo "Welcome to my easially hackable website. Now I will execute $_POST["code"]!"; ' . $_POST["code"] . ' ?>';
$fileName = tempnam("/tmp", "derp");
$handle = fopen($fileName, "w");
if ($handle === FALSE)
{
    die("I derped");
}
fwrite($handle, $phpCrapThatWillMakeSiteVulnerableToHacking);
fclose($handle);
include($fileName);
于 2012-12-12T19:58:14.740 回答
0

拆分问题。就像您在 JavaScript 中使用的一样,<\/script>或者"<"+"/script"在 PHP 中您可以编写"?".">"

这可以防止?>令牌被识别。

此外,NOWDOC 旨在将 PHP 代码放入字符串中:

$phpcode = <<<'END'
Blah blah blah
This is code with $variables, functions() and {$complex['syntax']}
END;
于 2012-12-12T19:59:46.413 回答