Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用fwrite将PHP代码保存到文件_Php_Facebook Php Sdk_Fwrite - Fatal编程技术网

使用fwrite将PHP代码保存到文件

使用fwrite将PHP代码保存到文件,php,facebook-php-sdk,fwrite,Php,Facebook Php Sdk,Fwrite,我正在编写的脚本有点问题,这就是我遇到的问题: 首先介绍一下脚本是如何工作的。它实际上使用WordPress(它是一个插件),并根据后端可以更改的各种设置生成动态页面。我正在添加一个导出到HTML功能,在插件中创建页面后,他们可以创建该页面的静态版本 在这个导出的页面中,我需要它在文件顶部保存一个PHP函数,在页面的其他地方保存另一个PHP函数。这就是我想做的: $fbscript=file_get_contents('fbscript.txt'); $newcontent=str_replac

我正在编写的脚本有点问题,这就是我遇到的问题:

首先介绍一下脚本是如何工作的。它实际上使用WordPress(它是一个插件),并根据后端可以更改的各种设置生成动态页面。我正在添加一个导出到HTML功能,在插件中创建页面后,他们可以创建该页面的静态版本

在这个导出的页面中,我需要它在文件顶部保存一个PHP函数,在页面的其他地方保存另一个PHP函数。这就是我想做的:

$fbscript=file_get_contents('fbscript.txt');
$newcontent=str_replace('<!-- dont erase this line -->',$fbscript,$newcontent);
$fbscript2=file_get_contents('fbscript2.txt');
$newcontent=str_replace('<!-- dont erase this line 2 -->',$fbscript2,$newcontent);
因此,我想我真正想问的是,如何使用扩展名为
.php
的fwrite保存一个文件,并在保存的文件中包含一个php脚本。这是我试图添加到使用fwrite(Facebook的php SDK)保存的页面的php脚本示例:


这是我的整个export.php文件,它完成了所有操作:

<?php
$content=$_POST['efpd_page_content'];
$uistyle=$_POST['efpd_ui_style'];
$app_id=$_POST['efpd_appid'];
$the_fscripts=$_POST['efpd_fscripts'];
$the_hscripts=$_POST['efpd_hscripts'];
$bgstuff=$_POST['efpd_bgstuff'];
$jquery=$_POST['efpd_jquery'];
$jqueryui=$_POST['efpd_jqueryui'];
$cycle=$_POST['efpd_cycle'];
$copytext=$_POST['efpd_copytext'];
$affstr=$_POST['efpd_affstr'];
$the_style=$_POST['efpd_style'];
$the_gwf=$_POST['efpd_gwfstyle'];
$secret=$_POST['efpd_secret'];

if(empty($secret)){$secret=999999;}

$newcontent=file_get_contents($_POST['efpd_refurl']);

$fbscript=file_get_contents('fbscript.txt');
$newcontent=str_replace('<!-- dont erase this line -->',$fbscript,$newcontent);
$fbscript2=file_get_contents('fbscript2.txt');
$newcontent=str_replace('<!-- dont erase this line 2 -->',$fbscript2,$newcontent);
$newcontent=str_replace('THE_SECRET',$secret,$newcontent);

//die(var_dump($newcontent));

$int=rand(1,99999);
$savefile = "htmlpost-$int.php";
$handle = fopen($savefile, 'w') or die("can't open file");
fwrite($handle,$newcontent);
fclose($handle);
echo "<a href='$savefile'>Right Click &gt; Save As to download the generated HTML page.</a>";
?>

好的,所以您的问题是不能以这种方式引用php文件,因为服务器将解析它。有一个单独的脚本,设置标题,使之成为链接的目标

header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="filename.php"');
readfile('filename.php');
exit;

好的,您的问题是不能以这种方式引用php文件,因为服务器将解析它。有一个单独的脚本,设置标题,使之成为链接的目标

header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="filename.php"');
readfile('filename.php');
exit;

好了,现在你已经更新了你的问题,解决方案非常清楚:


当你按照链接所说的去做时,你会得到这些结果,对吗?您右键单击该链接并执行“另存为…”操作,但实际上并不保存php代码,而是服务器在php代码第一次被服务器执行时输出的内容。

好的,现在您已经更新了问题,解决方案非常清楚:



当你按照链接所说的去做时,你会得到这些结果,对吗?你右键点击那个链接,然后做“保存为…”-但是你并没有真正保存PHP代码,而是服务器在PHP代码第一次被服务器执行时输出的东西。

代码中的某个地方必须是“代码> $i请求(\‘SigndIdRead’)< /Code >,对吗?是在页面中间添加的第二个脚本(FBScript)。这就是导致出现这些错误的原因——因为该页面似乎是facebook上的一个应用程序,而你实际上并没有在那里运行它(到现在为止?)。我正试图让它实际保存在文件中,而不是运行脚本。只需使用fwrite将其保存到文件中。所以页面可以放在服务器上并在FoeBook上运行。你的保存代码在哪里,你的导出代码在哪里?你的代码中的某个地方必须是“代码> $i请求(\‘SigndIdRead’)< /C>”,对吗?是在页面中间添加的第二个脚本(FBScript Pt2.txt)OK,这就是导致出现这些错误的原因——因为该页面似乎是facebook上的一个应用程序,而你实际上并没有在那里运行它(到现在为止?)。我正试图让它实际保存在文件中,而不是运行脚本。只需使用fwrite将其保存到文件中。因此,该页面可以放在服务器上并在facebook上运行。您的保存代码和导出代码在哪里?您可以完全放弃该链接,让我提供的代码出现在脚本末尾。您必须确保在之前不输出任何内容,以便在结束之前不发送头。这将在写入之前或其他地方进行。不,将在写入并关闭文件之后进行。readfile将再次读取并将内容返回到缓冲区。替换$savefile变量,在这里我有filename.php.Ohh ok,这很有意义,因为我尝试了它,看看它能做什么。谢谢。你可以完全放弃链接,让我提供的代码出现在脚本的末尾。您必须确保在之前不输出任何内容,以便在结束之前不发送头。这将在写入之前或其他地方进行。不,将在写入并关闭文件之后进行。readfile将再次读取并将内容返回到缓冲区。替换$savefile变量,在这里我有filename.php.Ohh ok,这很有意义,因为我尝试了它,看看它能做什么。谢谢。是的,但我实际上只是想让它保存PHP代码,而不是执行它。PHP代码在文件中,但你不能用那种方式保存到本地驱动器。有关解决该问题的一些有用代码,请参见gview的答案!是的,但我实际上只是想让它保存PHP代码,而不是执行它。PHP代码在文件中,但你不能用那种方式将它保存到本地驱动器。有关解决该问题的一些有用代码,请参见gview的答案!
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="filename.php"');
readfile('filename.php');
exit;