当我的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
Run Code Online (Sandbox Code Playgroud)
我这样做是为了将图像存储在一个独立的图像服务器上.该链接正在将图像添加到队列中.
如何正确执行此链接?
到目前为止我这样做了:
$link = 'http://77.33.xx.xx/s/addtoqueue.php?action=store&filename='.$filename.'&link=$link;
Run Code Online (Sandbox Code Playgroud)
但不知道如何运行这个?
顺便说一下,urlencode()和urldecode()的链接是否很聪明?
我不会自己构建查询字符串,但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);
Run Code Online (Sandbox Code Playgroud)
要实际调用URL,您可以使用多种技术,但在这种情况下,我最喜欢的是卷曲.以下是手册中示例的改编版本:
<?php
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
其他选项包括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);
Run Code Online (Sandbox Code Playgroud)
$response现在包含来自URL的响应.从curl_exec()手册页:
成功时返回TRUE,失败时返回FALSE.但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将在成功时返回结果,在失败时返回FALSE.
有关卷曲选项的更多信息,您可以使用结帐curl_setopt()手册页.