以前質問し、解決したかに見えたのですが、元ファイルに意外なケースがあることに気づき、再度質問させていただきます。
あるブラウザにて、あるテキストファイルの部分を抽出して表示させるスクリプトを考えております。
テキストファイル自体は同階層にあり(./aaa.txt)、不定期に更新されます。内容は下記<./aaa.txt>のような構成になっております。そして下段のphpスクリプト<vvv.php>ですと希望どおりに表示されるのですが、./aaa.txtファイルの中身は状況によっては空行が最初の1回しかないケースがあります。
その場合も、
222222222222
3333333333333 4444444444
のように"111111111111"を除いた、1回目の空行までは表示させたいのですが、何か良い方法はございますでしょうか?
※このようなファイルの場合<vvv.php>で実行すると、何も出力されません。
どうかご教授お願いいたします。
<./aaa.txt>
=========
111111111111
222222222222
3333333333333 4444444444
(空行)
55555555 6666666
66666666 8888888
(空行)
9999999999999999999999
・
・
=========
<vvv.php>
=========
<?PHP
function mytrim(&$item){//(1)
$item=str_replace(Array("\r","\n"),Array("",""),$item);
}
$lines=file("./aaa.txt");//(2)
array_walk($lines, 'mytrim');//(3)
$blankline=array_keys($lines,"");//(4)
$lastline=$blankline[1]-1;//(5)
for($i=0;$i<=$lastline;$i++){
if($lines[$i]!="111111111111"){//(6)
print $lines[$i]."<br>";
}
}
?>
=========
No.2ベストアンサー
- 回答日時:
前の回答の時に説明したと思うのですが
$blanklineは空白行が出現する行数
$lastlineが読み出す最終行です。
(5)の行を以下のように書きかえれば良いでしょう。
$lastline=$blankline[(count($blankline)==1?0:1)]-1;//(5)
blanklineの要素数が1しかないときは0番要素
そうでないときは1番要素を抽出するわけです。
できればスクリプトを理解してこまかい修正くらい
できるようになっていただけると助かります
すいません。焦っていて思わず理解を先送りにして質問してしまいました。
『配列$blanklineに空行の要素が幾つあるかを$lastline要素返すようにし、
1であれば0、1でなければ1を返すようにする』という流れで把握いたしました。
どうもありがとうございます。
No.1
- 回答日時:
前の質問というのがどれかわからないので、何をやりたいのか今ひとつつかめません。
「最初に空行が現れるまで、"111111111111"以外の行を表示する」
ということですか?
前の質問のURLを貼り付けるか、要求仕様をもう少し正確に書いていただけませんか?
この回答への補足
補正が遅れてしまい申し訳ございません。
最初に質問いたしましたURLは下記になります。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2419589
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日本語のファイルが開けない
-
txtファイルに書かれた"東京...
-
PHPでの別のサーバーのテキスト...
-
onedrive にexcelファイルをア...
-
PEARのmimeDecodeでメール解析...
-
awsにApacheとPHPを入れて、何...
-
拡張子php画像をjpg画像等に変...
-
日本語ファイル名のアップロー...
-
さくらサーバーにて、phpからメ...
-
PHP フォルダ名やファイル名に0...
-
拡張子php画像をbmp画像等に変...
-
php、JDライブラリを用いて画像...
-
フォントの色を変えるには?
-
PHPでxmlをAPIに送信する方法(P...
-
edmaxで送信できなくなりました
-
深い階層のフォルダの作成や削...
-
PHPのsystem()でjava
-
文字化けについて
-
ローカル環境でのメール送信
-
phpにて、ipアドレスによる処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
値の取り出し方について教えて...
-
2つの画像ファイルが異なるファ...
-
PHPでFilename cannot be empty...
-
ファイル名は、数字の「0」(...
-
stat failed
-
ファイルの行数取得
-
TSVファイルをCSV形式に変換したい
-
日本語のファイルが開けない
-
XMLのロードに失敗する
-
別のサーバにあるファイルの存...
-
PHP+MySQL でのcsvファイルイン...
-
日本語が文字化けしないよう読...
-
日本語のデータが文字化けをし...
-
PHPでの別のサーバーのテキスト...
-
PHP、ファイルロックの失敗で消...
-
PHP5のsimplexml_load_fileで取...
-
stdinからの処理でメール情報を...
-
PHPでテキストファイルかどうか...
-
phpのftp_get()でエラーが出ます。
-
phpメールフォームから送信・登...
おすすめ情報