使用php运行获取链接服务器端

时间:2012-05-23 08:37:33

标签: php

当我的PHP脚本运行时,我想运行像这个服务器端的链接:

http://77.33.xx.xx/s/addtoqueue.php?action=store&filename=myprettypicture&link=http://i69.servimg.com/u/f69/13/29/70/44/facebo10.png

我这样做是为了将图像存储在一个独立的图像服务器上。该链接正在将图像添加到队列中。

如何正确执行此链接?

到目前为止我这样做了:

$link = 'http://77.33.xx.xx/s/addtoqueue.php?action=store&filename='.$filename.'&link=$link;

但是不知道如何运行它?

顺便说一下,对于urlencode()和urldecode()的链接是否明智?

2 个答案:

答案 0 :(得分:5)

我不会自己构建查询字符串,但优先使用http_build_query()

$url = 'http://77.33.xx.xx/s/addtoqueue.php';
$params = array(
    'action' => 'store',
    'filename' => $filename,
    'link' => $link,
);
$link = $url . '?' . http_build_query($params);

要实际调用URL,您可以使用多种技巧,但在这种情况下,我最喜欢的是curl。以下是example from the manual的改编版本:

<?php
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);

如果是file_get_contents($link);,则其他选项包括fopen wrappers have been enabled

评论的附加回复

<?php
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$response现在包含来自网址的响应。来自curl_exec() manual page

  

成功时返回TRUE,失败时返回FALSE。但是,如果   设置CURLOPT_RETURNTRANSFER选项后,它将返回结果   成功,失败就错了。

有关卷曲选项的更多信息,您可以使用结帐curl_setopt() manual page

答案 1 :(得分:0)

您可以使用cURL来呼叫您的链接。 http://php.net/manual/ru/book.curl.php