2

当我的 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;

但不知道如何运行这个?

顺便说一句,对 $link 进行 urlencode() 和 urldecode() 是否明智?

4

2 回答 2

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这是手册中示例的改编版本:

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

其他选项包括file_get_contents($link);是否启用了 fopen 包装器

评论的附加回复

<?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现在包含来自 URL 的响应。从curl_exec()手册页

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

有关 curl 选项的更多信息,您可以查看curl_setopt()手册页

于 2012-05-23T08:40:04.617 回答
0

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

于 2012-05-23T08:40:17.737 回答