以前質問し、解決したかに見えたのですが、元ファイルに意外なケースがあることに気づき、再度質問させていただきます。
あるブラウザにて、あるテキストファイルの部分を抽出して表示させるスクリプトを考えております。
テキストファイル自体は同階層にあり(./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ランキング
-
FirefoxでFormのfileでファイル...
-
shift-jisでfgetcsv
-
phpメールフォームから送信・登...
-
PHPでテキストファイルかどうか...
-
2つの画像ファイルが異なるファ...
-
onedrive にexcelファイルをア...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
-
メールフォームのタイトルが文...
-
php エラー
-
PHPのif文でその処理を途中で抜...
-
VBでメールを送る時のSMT...
-
one drive のアップロード失敗...
-
別PHPファイルに変数を渡す
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
値の取り出し方について教えて...
-
2つの画像ファイルが異なるファ...
-
PHPでFilename cannot be empty...
-
ファイル名は、数字の「0」(...
-
stat failed
-
ファイルの行数取得
-
TSVファイルをCSV形式に変換したい
-
日本語のファイルが開けない
-
XMLのロードに失敗する
-
別のサーバにあるファイルの存...
-
PHP+MySQL でのcsvファイルイン...
-
日本語のデータが文字化けをし...
-
日本語が文字化けしないよう読...
-
PHPでの別のサーバーのテキスト...
-
phpメールフォームから送信・登...
-
PHP、ファイルロックの失敗で消...
-
PHP5のsimplexml_load_fileで取...
-
PHPでAPI 出力はCSVを取得する...
-
PHPでテキストファイルかどうか...
-
PHPで特定の文字列のみ抽出し、...
おすすめ情報