当我的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() $link会很聪明吗?
我不会像那样自己构建查询字符串,而是优先使用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设置了选项,它将返回结果 成功,失败时为假。
有关 curl 选项的更多信息,您可以使用 curl_setopt()
手册页查看。
您可以使用 cURL 调用您的链接。http://php.net/manual/ru/book.curl.php