将值传递给php文件以更改文件内的文本然后强制下载相同的文件

时间:2012-12-24 22:59:47

标签: php

下载链接:

<a href="download.php?words=2000&sort=popular&type=xml">Download php file</a>

的download.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Home</title>
</head>
<body>
<h1>PHP file</h1>

<?php
function get_text($text)  
{  
   ....
}      

function get_time($time)  
{  
   ....
}    

$url = "http://api.xxx.com/info.php?words=".$_GET['words']."&sort=".$_GET['sort']."&type="$_GET['type'];
$xml = simplexml_load_file($url);
if (count($xml))
{
  foreach($xml->book as $book)
  {
    echo ....      
  }
}
?>

</body>
</html>

download.php是一个现成的API php脚本,用于将网站管理员上传到他们的FTP。网站管理员可以从表单中选择许多选项(例如:download.php?words = 2000&amp; sort = popular&amp; type = xml),然后提交表单以获取他们的自定义API脚本。

这是在提交表单后将替换选项的行:

$url = "http://api.xxx.com/info.php?words=".$_GET['words']."&sort=".$_GET['sort']."&type="$_GET['type'];

这是强制下载的代码。但我不知道如何用$ content =“”包装整页。我知道如何包装HTML代码,但如何在页面上包装PHP函数和代码?

header("Content-Disposition: attachment; filename="download.php");
print $content;

1 个答案:

答案 0 :(得分:1)

不确定这是否是您想要的;但你可以创建第二个脚本来调用第一个脚本,获取输出,并使用上面提到的标题发送它:

<?php
$words = (int) $_GET['words'];
$sort = $_GET['sort'];

$url = sprintf("http://localhost/wherever/download.php?words=%d&sort=%s&type=xml", $words, $sort);
$content = file_get_contents($url);

header("Content-Disposition: attachment; filename="download.php");
print $content;
?>

调用该文件“force_download.php”并让用户改为<a href="force_download.php?words=2000&sort=popular&type=xml">Download php file</a>