もちろん、PHPのコードを書いて実行してしまえばいいのですが、単純にダウンロードしたり、データの先頭の一部分だけを取り出したい場合、コピー & ペーストで比較的簡単に行えるので、バッチ処理の一部として応用できるかもしれません。
php.ini に allow_url_fopen = On が設定されている事を確認して下さい
php -r "print ini_get('allow_url_fopen');"
コマンドプロンプトの設定
まずは簡易編集モードである事を確認し、右クリックでコマンドプロンプトにペーストできるようにします。(PowerShell も基本的には同じで、cmd と入力すればコマンドプロンプトになります。)
PHP 処理専用のコマンドウインドウ作成
以下のバッチファイルを作成して、エクスプローラからダブルクリックで実行します。
@echo off
setlocal
REM ▼ PHP のあるパスの追加
path=%path%;c:\php
title PHP 実行用
prompt work$G
mode con:cols=85 lines=50
cmd /k
title 終了しました : PHP 実行用
endlocal
REM php -r "copy('http://winofsql.jp/info.php','info.htm');"
REM php -r "print file_get_contents('http://winofsql.jp/info.php');"
REM php -r "print file_get_contents('http://winofsql.jp/info.php');" > info.html
REM php -r "file_put_contents('info.txt',file_get_contents('http://winofsql.jp/info.php'));"
実行コマンドは、サンプルバッチファイル内にコメントにして書いてありますが、それぞれは以下のような機能になります。
ダウンロード
php -r "copy('http://winofsql.jp/info.php','info.htm');"
表示
php -r "print file_get_contents('http://winofsql.jp/info.php');"
これは、リダイレクトするとダウンロードと同じ事になります
ダウンロード
php -r "file_put_contents('info.txt',file_get_contents('http://winofsql.jp/info.php'));"
ただの、ダウンロードならは copy で十分ですが、データが json なんかの場合はこのように関数を組み合わせるといいと思います。(json_encode から print_r で file_put_contents)
また、fopen fread fwrite で、データの一部分をダウンロードできます。
php -r "$i=fopen('http://winofsql.jp/info.php','r');$o=fopen('info.4096',"w");$r=fread($i,4096);fwrite($o,$r);"