OPENファイル(書き込み)をファンクション化したい。どうしたらいいでしょうか? <?php
OPENファイル(書き込み)をファンクション化したい。どうしたらいいでしょうか? <?php ///////////////////////////////////////////////////////////////////// //定数 ///////////////////////////////////////////////////////////////////// //クーロンのパス $path = '/etc/cron.d/auto_pbxrestart'; ///////////////////////////////////////////////////////////////////// //クーロンの設定の書き込み ///////////////////////////////////////////////////////////////////// if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 曜日を1,2,4,5とカンマをはさむ $selectday = $_POST['day']; foreach($selectday as $day){ $day2=$day2.$day. ","; } // 最後はカンマをはずす $day3 = rtrim($day2, ","); if ($day3 == ""){ $yday3="*"; } // クーロンファイルに書き込む $fpt = fopen($path, 'w'); if ($fpt == false) { print "このファイルには書き込みできません。<br>\n"; } //実際にクーロンに書き込みする(「* *」は月日なので今回は設定対象にならない) fwrite($fpt, $_POST['opt'] .$_POST['nminute']. " " .$_POST['nhour']. " * * " .$day3. " root /usr/local/sbin/auto_pbxrestart.pl"); fclose($fpt);
PHP・18閲覧
ベストアンサー
関数化する意味があまり見出せませんが、あえて書くなら if (isset($_POST['opt']) && isset($_POST['minute']) && isset($_POST['nhour']) && isset($_POST['day']) && is_array($_POST['day'])) $ret = write_cron($_POST['opt'], $_POST['minute'], $_POST['nhour'], $_POST['day']); // if (!$ret) エラー処理をここに書く function write_cron($opt, $min, $hour, $arr) { $path = '/etc/cron.d/auto_pbxrestart'; if (($fp = fopen($path, 'w')) === false) return false; if ((flock($fp, LOCK_EX)) === false) return false; fwrite($fp, $opt . $min . ' ' . $hour . ' * * ' . implode(',', $arr) . ' root /usr/local/sbin/auto_pbxrestart.pl' . PHP_EOL); if ((flock($fp, LOCK_UN)) === false) return false; if ((fclose($fp)) === false) return false; return true; } とかでしょうかねぇ。 戻り値を真偽値(成否)じゃなくてエラーメッセージ(空文字列ならエラーなし)にするとかでもいいでしょうけど、そのあたりはお好みで。
質問者からのお礼コメント
ありがとうございます^_^
お礼日時:1/24 15:40