• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストファイルの指定文字列表示)

テキストファイルの指定文字列表示

このQ&Aのポイント
  • あるブラウザにて、あるテキストファイルの有る部分を抽出して表示させる方法を考えています。
  • テキストファイルは同階層にあり、不定期に更新されます。
  • php4.3.2を使用して、111111111111を除いた2回目の空行までの全ての文字列を表示させたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

いろいろやり方があるとは思いますが、スマートに 書くとこんな感じでしょうか? <?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>"; } } ?> (1)mytrimはテキストファイルの改行が\rか\nか\r\nのいずれ かわからないトリムしています。 (2)まず、fileですべての行を読み取り (3)arra_walkでmytrimを呼び出し、すべての要素の改行マークを はずします (4)ブランク行をさがします (5)出力する最後の行は2番目のブランク行なので引数は1 (6)111・・・の行は表示しないとのことなので除外します。

wf3255
質問者

お礼

エレガントなご回答、誠に感謝いたします。 希望どおりの動きが出来ました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

phpで呼び出すということはhtmlと同様、textは 改行がきちんとされませんがよろしいのですか? また、質問意味がわかりにくいのですが、 具体的には222・・・の行から・・・888の行までが 表示されればよいのでしょうか?

wf3255
質問者

補足

>phpで呼び出すということはhtmlと同様、textは >改行がきちんとされませんがよろしいのですか? すいません、忘れていました。スクリプトで改行タグ入れないとダメですね。 >また、質問意味がわかりにくいのですが、 >具体的には222・・・の行から・・・888の行までが >表示されればよいのでしょうか? そのとおりです。 222222222222 3333333333333 4444444444 (空行) 55555555 6666666 66666666 8888888 みたいに表示させたいのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • テキストファイルの指定文字列表示2

    以前質問し、解決したかに見えたのですが、元ファイルに意外なケースがあることに気づき、再度質問させていただきます。 あるブラウザにて、あるテキストファイルの部分を抽出して表示させるスクリプトを考えております。 テキストファイル自体は同階層にあり(./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>"; } } ?> =========

    • ベストアンサー
    • PHP
  • テキストファイルから文字列の表示 2

    以前に質問した「テキストファイルから文字列の表示」の続きです。長ったらしい説明になるので、「テキストファイルから文字列の表示」を見た上で答えていただきたいです。コードは、「テキストファイルから文字列の表示」のNO.3~NO.5を主に参考にさせていただきました。OPEN_"*.*"の抽出が、*.*の形だけではなく、OPEN_"*"(つまり、OPENのあとに" "があると" "をすべて拾ってくる状態)で認識されています。*.*の形だけで抽出は出来ないものでしょうか。あと、" "の中に、":"(例.OPEN "C:temp",OPEN "ASD:")があると、":"がある所は無視されてしまいます。これもどうにかならないでしょうか 参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=340321

  • ファイルを開かずにテキストファイルの文字列置換

    続けての投稿で申し訳ないのですが、複数のフォルダ中のテキストファイルすべての中身を検索してある文字列を置換する方法を教えてください。 行いたい作業例ですが、 1)ABC- → ABC-   ある特定の半角文字列+"-"を全角に変換 2)2ー → 2-      ある特定の文字列+"ー(全角の長音)"を文字列+"-(全角のマイナス)"に 3)192.168.0.?? → ABC0?? にしたいです。 フォルダは複数あるため、一階層上から作業できる方がいいです。 AAAというフォルダ下に先のABCというフォルダ以外にDEFやGHIといったフォルダがあり、その下に001-00.txtや001-01.txtというフォルダがあるということです。 よろしくお願いします。

  • アプレットとテキストファイル

    Java初心者です. appletでゲームのようなものを作ろうと思い, テキストファイル(*.txt)から文章を読み込んで 表示するようなプログラムを書きました. eclipseのアプレットビューアではちゃんと表示されるのですが, 自分でhtmlを書いてブラウザで表示させようとすると, このテキストファイルが読み込まれないのか,以下のようなエラーが ブラウザの下に出ました. java.security.AccessControlException: access denied(java.io.FilePermission ./res/aaa.txt read). これはどういうことなんでしょうか. eclipseのアプレットビューアを使ったら, プロジェクトフォルダに"java.policy.applet"というものができていたので, これをうまく使えたらいいのかとも思うんですが, どうもよくわかりません. ご回答お待ちしています. ちなみにOSはmac OSXで, フォルダの構成は, プロジェクトフォルダ  ー/src/*.java,*.class  ー/res/aaa.txt です.

  • テキストファイルの任意の文字以降の文字列を削除したい

    test.txt AAA+あいうえお BBB+かきくけこ CCC+さしすせそ DDD+たちつてと EEE+なにぬねの 上記(test.txt)のようなテキストファイルから、各行の+以降の文字列を削除して、 以下(result.txt)のようなテキストファイルを生成させるプログラムを作成させたいです。 result.txt AAA BBB CCC DDD EEE このようなプログラムを作るにはどのようにすればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • テキストファイルから文字列の表示

    あるテキストファイルを読み込んで、OPEN_"*.*"(_は空白、空白の長さは固定されていない/*はワイルドカード)という形の文字列から *.* だけをテキストボックスに表示させたいのですが、どなたか教えてください。当方、初心者で全然わからずに困っています。 例.ABC.txtの中身 OPEN "BLGCOMON.DAT" AS #1 LEN=32 FIELD #1,1 AS BLG1$,8 AS BLG2$,1 AS BLG3$,20 AS BLGDUM$,2 AS BLGDEV$ OPEN  "ABCDEF.TXT" AS #1 LEN=32 GET #1,1 LSET BLG1$="1" LSET BLG2$="WSKMMKY " MID$(BLGDUM$,1,6)=MID$((STR$(WKRC)),2) MID$(BLGDUM$,7,6)=ISAMDAT$ LSET BLGDUM$ = BLGDUM$   OPEN QWER$ PUT #1,1 CLOSE #1 このテキストファイル(ABC.txt)の場合、1行目の「OPEN "BLGCOMON.DAT"」と3行目の「OPEN  "ABCDEF.TXT"」が質問の文字列に当てはまります。テキストボックスには「BLGCOMON.DAT ABCDEF.TXT」のみが表示されるようにしたいです。

  • テキストファイルの一部置換したファイルをたくさん作りたい

    テキストファイル(a.txt)があるのですが このファイルの一部の文字列aaaをbbbに置換したファイル(b.txt)を作りたいです。 また文字列aaaをcccに置換したファイル(c.txt)も作りたいです。 続けてd.txtやe.txt・・・と作っていきたいですが簡単にできるフリーソフトはないでしょうか? 現状はa.txtを開いてaaaをbbbに置換して、別名で保存するのを繰り返し(10回以上)するので大変です。 このようなことが楽にできるフリーソフトがあれば教えてください。

  • ファイル名からテキスト内文字列の置換

    フォルダ内に tokyo.txt、nagoya.txt、osaka.txt… といったファイル名のテキストファイルがあり そのテキストファイルの中に 地名リンクという文字列があります。 この地名リンクという文字列を各々のファイル名 tokyo.txt、nagoya.txt、osaka.txt…(できれば.txtなしのtokyo,nagoya,osaka) に一括置換したいのですが、何かいい方法はありませんか。

  • 別ファイルからのランダム抽出について

    php超初心者です。 よろしくお願いします。 同階層にあるphpフォルダから 1行だけ選択する方法は <?php $data = file("./php/random.txt"); srand((double)microtime()*1000000); shuffle($data); echo $data[0]; ?> でできたのですが、 これを同じphpフォルダのrandom.txtから ランダムに3~4つ抽出するには どのように書けばいいのでしょうか? (抽出したテキストはダブらないようにしたいと思います。) *random.txtには10行ほどのテキストが記述されています。 以上、ご回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • 10行単位の文字列をランダムに表示するには

    10行単位になっている文字群をランダムに表示したいのですが。 たとえば、文字列や数字の列、スクリプトなどが、10行単位でdata.txtに入っています。 ランダムに、その文字列を10行単位で表示する方法です。 こんな形で、呼び出し行を入れてブラウザに表示したいです。 <?php require("data.txt"); ?> 具体例でいいますと、強大なサイトを数名で作っていて、それぞれのアカウントのアドワース広告をランダムに表示したいなどという場合です。 ひとかたまり10行の広告が7つあれば、70行です。 それをランダムに10行単位で呼び出せば可能かと思うのですが。 バナーやテキストのランダム広告はたくさんありますが、今回のようなものは探してもないので、教えていただけるとありがたいです。 もちろんもっといい方法があれば歓迎です。 よろしくお願いいたします。

    • 締切済み
    • PHP