我正在尝试在文件中编写 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);
?>
我正在尝试在文件中编写 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);
?>
将要写入文件的字符串放在单引号中,否则将被解释。
$stringData = '<?php some php code ?>';
或者,您可以转义代码,有关详细信息,请参阅 php 手册中的“字符串”一章:http: //php.net/manual/en/language.types.string.php
使用单引号:
<?php
$myFile = "testFile1.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = '<?php some php code ?>';
fwrite($fh, $stringData);
fclose($fh);
?>
例如:
<?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)函数。
你为什么想做这个?无论如何,你不能。但是您可以向 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);
拆分问题。就像您在 JavaScript 中使用的一样,<\/script>或者"<"+"/script"在 PHP 中您可以编写"?".">"。
这可以防止?>令牌被识别。
此外,NOWDOC 旨在将 PHP 代码放入字符串中:
$phpcode = <<<'END'
Blah blah blah
This is code with $variables, functions() and {$complex['syntax']}
END;