質問: Twitterに画像とテキストをPHPとcronを使用して投稿しようと考えています。
回答: >> #いまさら文字コードは変えられないので、POSTするテキストのみ文字コードを変換 nkfコマンド等で一括変換してみてはいかがでしょうか? find -L ディレクトリ -name '*.php' -print0 | xargs -0n 10 nkf -Lu -w --overwrite さすがにEUC-JPを使うのはレガシーすぎて如何なる状況でもありえないですね...むしろ可能な限り早いうちにUTF-8に移行すべきです.後々保守の苦しみが増えます. >> $tmhOAuth->url('1.1/statuses/update_with_media') このAPIは非推奨です.現在では media/upload のほうが推奨されています. (通信回数が1回で済むメリットはあるので,使ってはいけないわけではないです) >> "@{$image};type=image/jpeg;filename={$imageName}", この@を使った記載方法はPHP5.5で非推奨となり,PHP5.6以降では設定を変えないと使用できません.画像が破損しているのではなく,このテキストをそのまま送っている状況だと思います.PHP5.5以降はCURLFileで代替します. 幾つか解決策はありますが,一番書き換えが少なくて済む方法を選ぶなら $imageName = basename($image); $params = array( 'media[]' => "@{$image};type=image/jpeg;filename={$imageName}", 'status' => "{$message}" ); ↓ $params = [ 'media[]' => new CURLFile($image), 'status' => $message, ]; ぐらいですかね. (ついでにarrayといった書き方も古いのでモダンな表記に変えました