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);

$responseURL からの応答が含まれるようになりました。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 に答える