Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
如何使用php将响应写入文件_Php - Fatal编程技术网

如何使用php将响应写入文件

如何使用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> (因此上述

我希望使用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>

(因此上述内容将是我的页面的最终来源。


<?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()
不会有任何错误@