我如何将 PHP 代码写入由 PHP 创建的文件中?
How could I write PHP code into a file created by PHP?
标题是self-explanatory。在 PHP 中,我创建了一个 PHP 文件,向其中添加了一些 PHP 和 HTML 代码,然后将其关闭。问题是 PHP 文件获取所有找到的 PHP 代码并将其转换为空。这是我尝试的最后一件事。
$phpfile=fopen('backupfile.php',"r");
$phptext=fgets($phpfile);
if(stristr($link, 'http://') === FALSE) {
fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=http://".$link." '/>");
}else{
fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=".$link." '/>");
}
php 文件包括以下内容:
<?php $file=fopen("/num","r"); $bar=fgets($file); $bar=$bar+1; $file=fopen("/num","w"); fwrite($file,$bar); ?>
如前所述,它不会将其添加到文件中。
我尝试了 htmlentities,但这使得 PHP 代码对页面可见,而不是硬连接到文件中。
感谢您的帮助。
这并不是真的要在文件中编写代码,您可以使用数据库来桥接这个想法。
您可以有一个标准的目录设置,即:帮助文档。
在该目录中,有一个文件:您可以简单地查询数据库中的页面,使用获取值将永久链接集成到每个页面,然后显示该值的内容(可能是页面 ID)。
当然,您需要实施标准和安全性 - 即,如果任何人都可以创建页面 - 确保只能添加某些 html 或 BBCode。
我希望这能拓宽你的想法;大多数论坛、帖子、评论等都是这样工作的。
第一步:
代码说明:
$link = "some like address";
if(mb_strpos($link, 'http://') === FALSE || mb_strpos($link, 'http://') > 0) {
$link = "http://".$link;
}
$phptext = PHP_EOL."<meta http-equiv='refresh' content='0; URL=".$link." '/>";
file_put_contents('backupfile.php', $phptext, FILE_APPEND);
好的,我在这里做了什么:
检查多字节字符串检查 HTTP:// 是否出现在字符串中,在开头检查是无关紧要的,因为如果它不在开头它无论如何都是无效的 HTTP 请求,并且您不进行检查为此,在提供的代码中。
检查后,$link
值会更新。
然后使用file_put_content将字符串中的内容追加到现有文件中。如果该文件不存在,则会创建它。
编辑:
从你的问题中不清楚,但如果你想 $link
保存在字符串中,那么用单引号写 link 如下:
$phptext = PHP_EOL.'<meta http-equiv="refresh" content="0; URL=$link"/>';
仅使用(转义的)单引号重写您的代码。使用双引号将导致嵌入的 php 被解释。
标题是self-explanatory。在 PHP 中,我创建了一个 PHP 文件,向其中添加了一些 PHP 和 HTML 代码,然后将其关闭。问题是 PHP 文件获取所有找到的 PHP 代码并将其转换为空。这是我尝试的最后一件事。
$phpfile=fopen('backupfile.php',"r");
$phptext=fgets($phpfile);
if(stristr($link, 'http://') === FALSE) {
fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=http://".$link." '/>");
}else{
fwrite($file2,$phptext."<meta http-equiv='refresh' content='0; URL=".$link." '/>");
}
php 文件包括以下内容:
<?php $file=fopen("/num","r"); $bar=fgets($file); $bar=$bar+1; $file=fopen("/num","w"); fwrite($file,$bar); ?>
如前所述,它不会将其添加到文件中。
我尝试了 htmlentities,但这使得 PHP 代码对页面可见,而不是硬连接到文件中。
感谢您的帮助。
这并不是真的要在文件中编写代码,您可以使用数据库来桥接这个想法。
您可以有一个标准的目录设置,即:帮助文档。
在该目录中,有一个文件:您可以简单地查询数据库中的页面,使用获取值将永久链接集成到每个页面,然后显示该值的内容(可能是页面 ID)。
当然,您需要实施标准和安全性 - 即,如果任何人都可以创建页面 - 确保只能添加某些 html 或 BBCode。
我希望这能拓宽你的想法;大多数论坛、帖子、评论等都是这样工作的。
第一步: 代码说明:
$link = "some like address";
if(mb_strpos($link, 'http://') === FALSE || mb_strpos($link, 'http://') > 0) {
$link = "http://".$link;
}
$phptext = PHP_EOL."<meta http-equiv='refresh' content='0; URL=".$link." '/>";
file_put_contents('backupfile.php', $phptext, FILE_APPEND);
好的,我在这里做了什么:
检查多字节字符串检查 HTTP:// 是否出现在字符串中,在开头检查是无关紧要的,因为如果它不在开头它无论如何都是无效的 HTTP 请求,并且您不进行检查为此,在提供的代码中。
检查后,
$link
值会更新。然后使用file_put_content将字符串中的内容追加到现有文件中。如果该文件不存在,则会创建它。
编辑:
从你的问题中不清楚,但如果你想 $link
保存在字符串中,那么用单引号写 link 如下:
$phptext = PHP_EOL.'<meta http-equiv="refresh" content="0; URL=$link"/>';
仅使用(转义的)单引号重写您的代码。使用双引号将导致嵌入的 php 被解释。