【前提】
CSVの中身は下記のようになっている
a,b,c d,e,f g,h,i j,k,l m n,o p,q r s t,u v,w x,y z
【やりたいこと】
WindowsからCSVの中身をWebサーバーにPOSTして、PHPで受け取って処理をしたい
【やってみたこと】
①CSVを変数に入れてPOSTしてみた
$data = Import-Csv -Encoding UTF8 -Path ".\test.csv" Invoke-WebRequest http://hogehoge -Method POST -Body $data
結果: PHPで$_POSTでは受け取れない
②CSV形式ではなくテキストとして送ってみるとどうなるか
$data = Get-Content -Path ".\test.csv" Invoke-WebRequest http://hogehoge -Method POST -Body $data
結果: PHPで$_POSTで受け取れた。…が、内容がキーに入って中身が空の状態になった。できれば逆にしたい。
array(1) { ["a,b,c d,e,f g,h,i j,k,l m n,o p,q r s t,u v,w x,y z"]=> string(0) "" }
③中身を配列にいれてみるとどうなるか
$data = Get-Content -Path ".\test.csv" Invoke-WebRequest http://hogehoge -Method POST -Body @{"data"="$data"}
結果: かなりいい感じになった。
array(1) { ["data"]=> string(35) "a,b,c d,e,f g,h,i j,k,l m n,o p,q r s t,u v,w x,y z" }
【残る問題点】
あとは、改行が半角スペースになってしまっているが、行毎に配列に入れたい場合に下記のようにしても元々改行ではない箇所で分割されてしまう(例えばyとzの間の半角スペース等)
$data = explode(' ', $_POST["data"]);
何かいい方法があれば教えていただきたいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/11 08:36