ゆるく働き ゆるく生きる ゆるいだれかの日記

menu

ゆるりの足あと


file_put_contentsをwindows上&コマンドラインで実行したい!エラーではまったのでメモ

比較的使い慣れているPHPで、csvを編集 → file_put_contents()で保存したい。それをwindows上でやりたい!

カンタンにできると思いきや、エラーにはまって悪戦苦闘したので、注意点などをメモしておきます。

今回実行したかったのは以下のPHPです!

失敗①

このプログラム、windows上ではなく、レンタルサーバー上なら全く問題なく動きます。でもローカル環境だと以下のエラーが出てきます。

Warning: file(moto.csv): failed to open stream: No such file or directory in ….

う~ん・・・

とりあえず相対パスではなく、絶対パスにしたらどうにかなるんじゃ??と軽い気持ちで以下のように訂正。

失敗②

が・・・。

またもエラー($・・)/~~~

Warning: file_put_contents(C: est\ato.csv): failed to open stream: Invalid argument in ….

なぜーーーΣ(゚д゚lll)

と思いながらgoogle先生に尋ねてみると

 

Windows 環境では、ファイルパスで用いる全てのバックスラッシュを エスケープするかフォワードスラッシュを使用することに注意してください。
PHPマニュアル

“c:\\folder\\resource.txt” ← こんな風に書かないといけないらしい。。。

\と¥は同じです。たぶん。

というわけで、

windows上でfile_put_contentsに成功!

無事、実行することができました。

C\:xampp\php\php.exe “C:\test\test.php”

とコマンドに打ち込み実行しました。

追記

成功したと思ったのも束の間、またも、はまりました。。。

原因はmoto.csvをSHIFT-JISで保存してしまっていたことでした。UTF-8で保存すれば、うまく実行できるのですが、それに気付くのに半日費やしました(+o+)

蛇足

ちなみに、今回やりたかったのは、以下。

☆住所のCSVファイル → 経度,緯度,一致レベルのCSVファイルを作成

具体的には以下のような感じです。

↓↓↓

その時の利用したPHPが以下です。

YahooAPIを利用して住所から緯度・経度・一致レベルを一覧にしてCSVにしたかったんですよねーー。

意外に苦労してしまいました。

少しはお役に立てましたか?

役に立つかも?と思われた方はぜひシェアを!

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

過去に作成したサイト集