SQLの窓

2018年02月10日


PHP をコマンドプロンプトから実行して、WEB 上のデータを取得するいくつかの方法

もちろん、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);"


【PHP + 通信の最新記事】
posted by lightbox at 2018-02-10 00:34 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり