-1

URLから画像を取得する際に問題があります。私は file_put_contents を使用していますが、空白のない画像が機能しているため、画像の URL に空白があることが問題であることがわかりました。

画像を取得している URL は次のようになります。

/support/member_profile/16-New%20Image%20(With%20Logo)%20(Medium).jpg

urlencode() を試してみましたが、まだ機能していません。エンコードされた URL をエコーすると、次のようになります。

%2Fsupport%2Fmember_profile%2F16-New+Image+%28With+Logo%29+%28Medium%29.jpg

どうすればその問題を解決できますか? 前もって感謝します

編集:

空白のみを %20 に置き換える必要があることがわかりました。urlencode を使用すると URL 全体がエンコードされるため、機能しません。

それを行う方法のヒントはありますか?ありがとう

4

2 に答える 2

1

urldecodeを使用%20して実空間に変換します。
その後、 を呼び出すことができますfile_put_contents

于 2013-03-27T15:44:25.583 に答える
0

スラッシュを含むパス全体ではなく、ファイル名のみを URL エンコードする必要があります。

$path = '/support/member_profile/16-New Image (With Logo) (Medium).jpg';
$p = pathinfo($path, PATHINFO_DIRNAME);
$f = pathinfo($path, PATHINFO_FILENAME);
$e = pathinfo($path, PATHINFO_EXTENSION);

echo sprintf('%s/%s.%s', $p, urlencode($f), urlencode($e));

実際には、各パス部分もurlencode する必要があります。

$path = '/support/member profile/16-New Image (With Logo) (Medium).jpg';
$p = explode('/', $path);

foreach ($p as $pp)
  $pathparts[] = urlencode($pp);

echo implode('/', $pathparts);
于 2013-03-27T15:44:07.170 に答える