記事の投稿(途中)
今回はPHPで投稿します。
記事の投稿はデスクトップのtest.phpをVisualStudioCodeで開いてVSCode上で実行します。
その際に、PHPをダウンロードし、PHPをシステムの環境パスに通す必要がある。システム環境パスの通し方は以下の通り。
手順 1: PHPのインストールパスを確認
- PHPを解凍した場所(例えば、
C:\Users\YourUsername\Documents\php
)を確認します。 php.exe
があるディレクトリ(通常は解凍したフォルダの中)をメモします。
手順 2: 環境変数にPHPのパスを追加
- スタートメニューを開き、「環境変数」と入力して、「システム環境変数の編集」を選択します。
- システムのプロパティウィンドウが開いたら、下の方にある「環境変数(N)…」ボタンをクリックします。
- 環境変数ウィンドウで、システム環境変数セクションにある「Path」を選択し、「編集」をクリックします。
- 編集環境変数ウィンドウで、「新規」ボタンをクリックして、PHPを解凍したフォルダ(例:
C:\Users\YourUsername\Documents\php
)を追加します。フォルダのパスはphp.exe
がある場所です。例:plaintextコードをコピーするC:\Users\YourUsername\Documents\php
- 「OK」をクリックして、すべてのウィンドウを閉じます。
手順 3: ターミナルを再起動して確認
- 新しいターミナルを開きます。既に開いているターミナルウィンドウを閉じ、再度開くことで、新しく設定された環境変数を反映させます。
php -v
コマンドを再度入力して、PHPのバージョン情報が表示されるか確認します。shコードをコピーするphp -v
その後、ドキュメントのphpフォルダを開くとphp.ini-developmentとphp.ini-productionというファイルがあるが、php.ini-developmentをphp.iniにリネームし、php.iniを開いて「;extension=fileinfo」のコメントアウトを外す。(extension=fileinfoとする)。
<?php
# アップロード先
$wp_url = 'https://xxx.com';
# アップロードするファイルのある場所
$upload_img = __DIR__.'/download/';
# 画像ファイル名
$upload_img = 'sample.jpg';
$file_info = new finfo(FILEINFO_MIME_TYPE);
$file_mime = $file_info->file($file_tmp);
$request_header = [
'Authorization: Basic' . base64_encode('{API投稿ユーザー名}' . ':' . '{設定したAPI用のパス}'),
'Content-Disposition: attachment; filename="%s"' . $file_name,
'Content-Type:' . $file_mime,
];
# API叩く
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $base_url.'/wp-json/wp/v2/media');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($curl, CURLOPT_HTTPHEADER, $request_header);
curl_setopt($curl, CURLOPT_SSL_VERIFYEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSPER, true);
$result = curl_exec($curl);
curl_close($curl);
# 成功すればIDとかが返ってくるので取っておく
$media_id = '';
if (empty($result)) {
echo "画像ID>失敗" . PHP_EQL;
end();
}
$media_id = json_decode($result, true)['id'];
echo "画像ID>" . $media_id . PHP_EQL;
?>