我试图弄清楚如何将.fp文件转换成一个.php文件,该文件包含通过$ _POST或$ _GET给出的变量,由用户提供设置变量等。那么,我将如何使下面的代码工作,以便代替编写代码,例如插入$ _GET变量,或者在下面的描述中,为$ derp。
<?php
$derp = "working!";
$something = '<?php echo "Well Thats {$derp}' ?>';
$file = fopen("worked.php","w");
if (fwrite($file,$something) > 0) {
echo "Fwrite Successful!";
}
fclose($file);
?>
答案 0 :(得分:0)
虽然这个用例看起来很奇怪,但以下情况应该有效:
$data = array('<?php');
foreach ($_REQUEST as $key => $value) {
$data[] = "\$$key = \"$value\";";
}
$data[] = '?>';
$data = join("\n", $data);
file_put_contents('/path/to/file.php', $data);
注意:此代码存在一些安全风险。
WTF正在进行中?
以上代码遍历$_GET
和$_POST
,combined的所有数组元素。
通过它,它创建了一个要写入文件的行数组
然后使用NEWLINE ascii字符作为粘合剂将此数组join()
编辑成字符串。
假设使用以下查询字符串调用此脚本:
?foo=bar&bar=baz
文件/path/to/file.php
将包含(file_put_contents):
<?php
$foo = "bar";
$bar = "baz";
?>
上面的示例不支持嵌套查询参数,例如foo[bar]=baz
。