download_url()


WordPress関数download_url()は、指定したURLからファイルを一時的にダウンロードするために使用されます。

構文

download_url( string $url, int $timeout = 300 );

引数の説明

  • $url (string) — ダウンロードするファイルのURLを指定します。
  • $timeout (int) — ダウンロードのタイムアウト時間を秒単位で指定します(デフォルトは300秒)。

例 1: ファイルをダウンロードして一時ファイルのパスを取得

指定したURLからファイルをダウンロードし、一時ファイルのパスを取得します。

<?php
$temp_file = download_url( 'https://example.com/sample.zip' );
if ( is_wp_error( $temp_file ) ) {
    echo 'エラーが発生しました: ' . $temp_file->get_error_message();
}
?>

例 2: 一時ファイルの内容を確認

ダウンロードした一時ファイルの内容を表示します。

<?php
$temp_file = download_url( 'https://example.com/data.txt' );
if ( ! is_wp_error( $temp_file ) ) {
    echo file_get_contents( $temp_file );
}
?>

例 3: タイムアウト時間を指定してダウンロード

タイムアウト時間をカスタマイズしてファイルをダウンロードします。

<?php
$temp_file = download_url( 'https://example.com/largefile.zip', 600 );
if ( is_wp_error( $temp_file ) ) {
    echo 'エラー: ' . $temp_file->get_error_message();
}
?>

例 4: ファイルを保存先に移動

ダウンロードしたファイルを特定の場所に移動します。

<?php
$temp_file = download_url( 'https://example.com/image.jpg' );
if ( ! is_wp_error( $temp_file ) ) {
    $new_path = wp_upload_dir()['path'] . '/image.jpg';
    rename( $temp_file, $new_path );
    echo 'ファイルが保存されました: ' . $new_path;
}
?>

例 5: エラーの処理

ダウンロード中のエラーを処理します。

<?php
$temp_file = download_url( 'https://example.com/nonexistent.zip' );
if ( is_wp_error( $temp_file ) ) {
    error_log( 'ダウンロード失敗: ' . $temp_file->get_error_message() );
}
?>

注意事項

  • download_url()を使用すると、ダウンロードされたファイルは一時フォルダに保存されます。一時ファイルは使用後に削除することを推奨します。
  • ダウンロードしたファイルのサイズに注意してください。大きなファイルはサーバーリソースを消費します。

関連機能: