我希望使用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>
(所以上面将是我页面的最终来源。
答案 0 :(得分:2)
我认为有几种方法可以做你想要的。并非所有这些都能按照您的要求完全正常工作,但最终结果应该是相同的。
我的第一个可能的解决方案已由@shanethehat发布。您可以使用file_get_contents
通过HTTP调用PHP脚本并获取响应。
@YourCommonSense在帖子的评论中提出了另一种可能的解决方案。您可以简单地include
生成HTML文件的PHP脚本中的getdoc
脚本,如下所示:
$_GET["name"] = "documentA";
echo "<a href=\"". include("getdoc.php") ."\"> Open Document A </a>";
或者您可以更改getdoc
脚本的工作方式。您可以使用更像这样的脚本:
header("Content-type:application/pdf");
header("Content-Disposition:attachment; filename=\"{$_GET["name"]}\"");
readfile($_GET["name"]);
你保持这样的链接:<a href="mylink.com/getdoc.php?name=documentA"> Open Document A </a>
。调用getdoc.php
时,它将获取指定的文件并开始下载文件。
注意:您应该使用此方法进行一些输入清理(删除斜杠,确保文件以.pdf结尾等)以确保有人不会尝试获取文件不允许得到。
这就是我现在想出来的全部内容。可能有一种更聪明的方法,但希望其中一种解决方案能够为您完成。我会首先尝试解决方案2或3,如果它们不适合你,那么请使用解决方案1。
答案 1 :(得分:0)
<?php
//get output from URL
$myfile = file_get_contents('http://mylink.com/getdoc?name=documentA');
?>
<a href="<?php echo $myfile; ?>">Open Document A</a>
答案 2 :(得分:0)
如何使用php编写对文件的响应
Noway。
PHP不处理HTTP请求
您必须设置Web服务器才能进行重写
mod_rewrite标签下有100500个问题,您可以轻松找到解决方案。
请注意,您可能希望将您的网址重写为/getdoc.php?name=document2012-03-15.pdf
,而不是您在问题中提到的网址