如何使用php将响应写入文件
我希望使用PHP将命中给定url的响应写入锚定标记的href属性。我该怎么做 这是一个我期待发生的事情的例子如何使用php将响应写入文件,php,Php,我希望使用PHP将命中给定url的响应写入锚定标记的href属性。我该怎么做 这是一个我期待发生的事情的例子 mylink.com/getdoc?name=documentA 返回字符串作为响应: mylink.com/document2012-03-15.pdf 我需要将此响应(使用PHP)写入href属性,如下所示: <a href="mylink.com/document2012-03-15.pdf"> Open Document A </a> (因此上述
mylink.com/getdoc?name=documentA
返回字符串作为响应:
mylink.com/document2012-03-15.pdf
我需要将此响应(使用PHP)写入href属性,如下所示:
<a href="mylink.com/document2012-03-15.pdf"> Open Document A </a>
(因此上述内容将是我的页面的最终来源。
<?php
//get output from URL
$myfile = file_get_contents('http://mylink.com/getdoc?name=documentA');
?>
<a href="<?php echo $myfile; ?>">Open Document A</a>
如何使用php将响应写入文件
没有。PHP不处理HTTP请求。
您必须设置web服务器才能进行重写。
mod_rewrite标签下有100500个问题,您将很容易找到解决方案 请注意,您可能希望将url重写为
/getdoc.php?name=document2012-03-15.pdf
,而不是您在问题中提到的url
如何使用php将响应写入文件
没有。PHP不处理HTTP请求。
您必须设置web服务器才能进行重写。
mod_rewrite标签下有100500个问题,您将很容易找到解决方案
请注意,您可能希望将url重写为
/getdoc.php?name=document2012-03-15.pdf
,而不是您在问题中提到的,我认为有几种方法可以满足您的要求。并非所有方法都能完全按照您的要求工作,但最终结果应该是相同的
解决方案一
我的第一个可能的解决方案已经由@shanetheat发布。您可以使用file\u get\u contents
通过HTTP调用您的PHP脚本并获取响应
解决方案二
@YourCommonSense在帖子的评论中提出了另一种可能的解决方案。您可以简单地在生成HTML文件的PHP脚本中包含getdoc
脚本,如下所示:
$_GET["name"] = "documentA";
echo "<a href=\"". include("getdoc.php") ."\"> Open Document A </a>";
header("Content-type:application/pdf");
header("Content-Disposition:attachment; filename=\"{$_GET["name"]}\"");
readfile($_GET["name"]);
您可以这样保存链接:
。当调用getdoc.php
时,它将获取指定的文件并开始文件下载
注意:您可能应该使用此方法进行一些输入清理(删除斜杠,确保文件以.pdf结尾,等等),以确保某人不会尝试获取不允许获取的文件
这就是我目前想到的所有方法。可能有一种更聪明的方法可以做到这一点,但希望这些解决方案中的一种能帮到你。我会先尝试解决方案2或3,如果它们对你不起作用,那么就选择解决方案1。我认为有几种方法可以满足你的要求。并非所有的方法都能完全按照你的要求工作,但是最终结果应该是一样的
解决方案一
我的第一个可能的解决方案已经由@shanetheat发布。您可以使用file\u get\u contents
通过HTTP调用您的PHP脚本并获取响应
解决方案二
@YourCommonSense在帖子的评论中提出了另一种可能的解决方案。您可以简单地在生成HTML文件的PHP脚本中包含getdoc
脚本,如下所示:
$_GET["name"] = "documentA";
echo "<a href=\"". include("getdoc.php") ."\"> Open Document A </a>";
header("Content-type:application/pdf");
header("Content-Disposition:attachment; filename=\"{$_GET["name"]}\"");
readfile($_GET["name"]);
您可以这样保存链接:
。当调用getdoc.php
时,它将获取指定的文件并开始文件下载
注意:您可能应该使用此方法进行一些输入清理(删除斜杠,确保文件以.pdf结尾,等等),以确保某人不会尝试获取不允许获取的文件
这就是我目前想到的所有方法。可能有一种更聪明的方法可以做到这一点,但希望这些解决方案中的一个能为您做到。我会先尝试解决方案2或3,如果它们不适合您,那么就使用解决方案1。这里的问题到底是什么?获取URL的内容,显示链接,…?我如何处理更清楚吗?-我问过“我希望将点击给定url的响应写入href属性”给出了一个我预期会发生什么的演示是的,你做了,但问题是什么?你不明白什么部分?你尝试过什么吗?我如何使用php将点击url的响应写入href属性。我仍然在问同样的问题,但只是重新排列单词。我不能问不同的问题。问题的确切部分是什么这里有问题吗?获取URL的内容,显示链接,…?如何使其更清晰?-我问过“我希望将命中给定URL的响应写入href属性”给出了一个我期望发生的事情的演示是的,你做了,但问题是什么?你不明白什么部分?你尝试过什么吗?我如何使用php将点击url的响应写入href属性。我仍然在问相同的问题,但只是重新安排了单词。我不能问不同的问题。我不想生气但是……谢谢你支持懒惰和糟糕的问题:/@JanHančič别担心,答案还是漏掉了一英里:)对不起,我没有意识到我误解了。似乎OP希望能够从不同的脚本检索文件名并将它们嵌入到他的HTML中。如果是这样的话,那么我认为显示file\u get\u contents()我理解这个问题没有什么困难,但它只是让我觉得我可能不会说一口流利的英语。@JanHančič:我不认为答案那么不清楚,我认为这个解决方案对OP有效。当然,这可能不是最好的方法,但它可能会满足OP的要求。顺便说一句,你应该读一下——不要我想大声咆哮,但是……谢谢你支持懒惰和糟糕的问题:/@JanHančič别担心,答案还是漏掉了一英里:)对不起,我没有意识到我误解了。看起来OP希望能够从不同的脚本中检索文件名,并将它们嵌入到他的HTML中。如果是这样的话,那么我认为以这种方式使用file\u get\u contents()
不会有任何错误@