当我的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()的链接是否明智?
答案 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