人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP・コマンドプロンプトについての質問です。

Windowsコマンドプロンプトにて、renameコマンドを使いファイルの一括名前変更を行いたいと思っています。
そこでphpを使い、

<?php
/* ファイルポインタをオープン */
$new = fopen("li.txt", "r");
$old = fopen("moto.txt", "r");


/* ファイルを1行ずつ出力 */
if($new){
while ($nline = fgets($new)) {
$oline = fgets($old);

$results = shell_exec("rename '".$oline."' '".$nline."'");

echo $results;
}
}

/* ファイルポインタをクローズ */
fclose($new);
fclose($old);


このようにして変更前後の名前のファイルを別で用意しそれぞれを読み込み
変更しようとしているのですが、コマンドプロンプトでは構文エラーとなります。

そこで試しに("rename '".$oline."' '".$nline."'")部分だけをエコーで出力してみたところ
$olineと$nlineの間に改行のようなものが入っていることがわかりました。
しかしその原因がわかりません。

どなたか解決できる方はいらっしゃらないでしょうか?
よろしくお願いします。

●質問者: こばしゅん
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

PHPでfgets()を使って一行ずつ呼び出すときには,取得した文字列の最後に改行コードが付加されている.改行を削除する場合にはrtrim()を使うとよい.

あくまでコピペですから [覚書][PHP]fgets()したときの改行コード

ですって。
PHP: rtrim - Manual


こばしゅんさんのコメント
なるほど!なるほど!ありがとうございます! URLもとても参考になりました!ありがとうございました^^
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ