• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP テキストファイルの一部分を部分一致で)

PHPテキストファイルから部分一致で特定の文字列を取得する方法

mpxの回答

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

以下のような動きで良いのでしょうか? <?PHP $txt=<<<_MENU_ <div class="menu_big">1. 東京都</div> <div class="menu"><a href="xxx.1-1.html">1-1.千代田区</a></div> <div class="menu"><a href="xxx.1-2.html">1-2.渋谷区</a></div> <div class="menu"><a href="xxx.1-3.html">1-3.新宿区</a></div> <div class="menu_big">2. 北海道</div> <div class="menu"><a href="xxx.2-1.html">2-1.札幌市</a></div> _MENU_; // 以上は $txt=file_get_contents($filename); の代用 $str='2-1'; //ここに検索する番号 preg_match('|<a .*?>('.$str.'.*?)</a>|', $txt, $matches); print_r($matches);//結果出力 ?>

kt4325
質問者

お礼

的確なご回答ありがとうございます。欲しい結果が得られました。 関数と正規表現をきちんと理解しないと、思うように使えないですね…。 初級本から頑張ります。ありがとうございました。

関連するQ&A

  • 特定部分のテキストを取得したい

    あるテンプレートに添って作られたページからテキストを取得するブックマークレットを作りたいのですが、 下記のような構造のページから りんご、みかん、ぶどう、部分のテキストだけ抜き出して取得するにはどうすればいいでしょうか? <h1 id="hoge">りんご</h1> ~ <span class="fuga"> <a href="test.html">みかん</a> </span> ~ <div class="piyo"> <dl class="foo"> <dt>xxx</dt><dd>ぶどう</dd> <dt>xxx</dt><dd>xxx</dd> <dt>xxx</dt><dd>xxx</dd> </dl> </div>

  • ネスケとIEを同じ表示にしたい

    文字をborderで囲ったものを二列に6つずつ並べて、サイトのメニューとして 使っています。 HTMLを以下のように記し、↓ <div> <span class="menu"><a href="#">AAA</a></span> <span class="menu"><a href="#">BBB</a></span> …… </div> <div> <span class="menu"><a href="#">CCC</a></span> <span class="menu"><a href="#">DDD</a></span> …… </div> これをcssで以下のようにしているのですが、ネスケで上手く表示されません 。 .menu { font-size: 13px; text-align: center; margin: 2px; border:1px solid gray; width: 97px; height: 15px; color: #808080; } どうも、marginとwidth、heightが反映されていないようなのですが、これを ネスケでも反映させるにはどうしたらいいでしょうか。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • ,で句切って部分一致をファイル出力

    昨日も出したのですが自分で作成してみたんですけどヒントをいただいて作成してみたんですけど間をどうしていいかわからないので教えていただきたく載せました。 よろしくお願いいたします。 コメント部分をつくればいいみたいなのですが… (1)フォルダにファイルを用意する(CSV形式の文字列のファイル) (2)最初に文字列をキーボードから入力させる(文字列は半角で5文字まで、それ以外ならば繰り返し入力させる) (3)フォルダのファイル読み込み、(2)で入力した文字列が含まれている単語をファイルに出力(ファイルは新規作成 例: 読込み元ファイル: river,request,fire,maybe,best,over,coin,confortable, today,task,mary,face,popular,music,rock, mark,fight,replay,listen,pop, ------------------- 入力文字列:fi ファイル出力結果 fire, fight, ---------------------- 入力文字列:re ファイル出力結果 request, fire, replay public class Kadai4 { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ String inputString; // ユーザーがキーボードから入力 // ファイルから1行読み込む String fileString =BufferedReader(FileReader); StringDetect sDetect = new StringDetect( );// ()の中に入れる new StringTokenizer( );// ()の中に入れる if(findMatch(nextToken)){ // ファイルに出す } } public class StringDetect{ private static String inputString = null // コンストラクタ public StringDetect(String str){ //ここに入れる } public static boolean findMatch(String word){ //wordとinputを比較して部分一致があれば //true、一致しなければfalseを返す } } }

    • ベストアンサー
    • Java
  • 特定のテキストにリンク

    特定のテキストにリンク javascriptで、html内に出てくる特定のテキストに<a>をつけてリンクさせるには、どのようにすればよいでしょうか。 例えば、 <div class="contents"> <p>私は都庁に行きます。</p> <p>私は上野にも行きます。</p> </div> とあったら、 <div class="contents"> <p>私は<a href="http://www.metro.tokyo.jp/" target="_blank">都庁</a>に行きます。</p> <p>私は<a href="http://www.ueno.or.jp/">上野</a>にも行きます。</p> </div> といった感じです。 このclass(id)の中の、この単語(テキスト)といった指定ができると良いです。 よろしくお願い致します。

  • リンクがうまく機能しません(php使用)

    はじめまして。 A BC D という作りのホームページを作ろうとしています。 B部分をメニューとして利用し、phpでファイルを読み込んで表示させていと思っています。 「あ」というページのBをクリック→「い」というページへ 「い」というページの作りは E BF G ということをしたいのですが、リンクを張ってもうまく飛びません。 どなたかお知恵を拝借できないでしょうか? htmlとcssとフレームでのサイトを作ったことはあるのですが、プログラム系は初めて触ります。 自力で勉強もしていますが、会社の命令なので追いつきません。 よろしくお願いします。 <body> <div class="wrapper"> <div id="header"> </div> <div id="container"> <div id="cont1"> <?php include_once('../../info.php'); ?> </div> <div id="cont2"> </div> <div id="cont3"> </div> <div id="footer"> </div> </div> </body> infoには <a href="file:///C|/xampp/htdocs/HP/X/XX/XXX.php">XXXへのリンク</a> としています。

    • ベストアンサー
    • PHP
  • HTMLやcssに詳しい方教えてください

    HTML、cssに詳しい方、助言お願いします。 footerの部分なのですが、footerより上の部分(サイドのナビやメイン部分)にj Query、javascriptを入れる(入れたのはアコーディオン)と、footerの部分がおかしくなります(footerのbackground-colorが一部消えるなど) どなたか、もしおかしい部分があるのでしたら、おかしい部分の指摘をお願いします。xxxはテキストを入れている部分です。 footerのHTML <div class="footercolor clearfix"> <div id="footer"> <div class="footerbox1"> <ul class="footertext1"> <li><a href="../ranking.html">xxx</a></li> <li><a href="../area-top/area.html">xxx</a></li> </ul></div> <div class="footerbox2"> <ul class="footertext2"> <li><a href="../index.html">xxx</a></li> <li><a href="../site.html">xxx</a></li> <li><a href="../info.html">xxx</a></li> <li><a href="../system.html">xxx</a></li> </ul></div> <div class="footerbox3"> <ul class="footertext3"> <li><a href="../inquiry.html">xxx</a></li> </ul></div> </div> <address class="copyright">Copyright (C) xxx.com 2014 All Rights Reserved.</address> footerのcss .footercolor{ background-color:#FFCC99; } #footer{ width:960px; margin:0 auto; } .footerbox1{ width:320px; float:left; } .footerbox2{ width:320px; float:left; } .footerbox3{ width:320px; float:left; } .footertext1{ text-align:center; margin-top:12px; list-style:none; padding:3px; } .footertext2{ margin-top:12px; list-style:none; padding:3px; text-align:left; margin-left:80px; } .footertext3{ text-align:center; margin-top:12px; list-style:none; padding:3px; margin-left:50px; } .footertext1 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .footertext2 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .footertext3 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .copyright{ clear:both; text-align:center; font-weight:bold; padding-top:50px; padding-bottom:10px; }

    • 締切済み
    • SEO
  • 大容量テキストファイルから任意の部分だけ抜き出すには??

    テキストファイルから任意の部分だけ抜き出したいです。 試行錯誤しているのですが、正直もうお手上げで。。 やることとしては、元ファイルがshiftjisなので、UTF8に変換し、処理を行う感じになると思っています。 ソースは以下のように書き、syntaxOKなのですが、実際に結果を出力するテキストファイルは0BYTEなので訳がわかりません。。 ソースは以下のような感じです。 何かヒントを頂けないでしょうか。 #!/usr/bin/perl use Encode::JP; use warnings; open READ, '<:encoding(shiftjis)', 'テキストファイル名'; open WRITE, '>:encoding(utf8)', 'テキストファイル名2'; while(my $data = <READ>){ ($data,"shiftjis","utf8"); printf WRITE; }; close WRITE; close READ; open PAY, 'テキストファイル名2'; while (<PAY>) { printf if /^"抜き出したい文字列(開始)"$/ .. /^"抜き出したい文字列(終了)"$/ and !/^(?:"抜き出したい文字列(開始)"|"抜き出したい文字列(終了)")$/; };

    • ベストアンサー
    • Perl
  • テキストファイルのhttp://を一括で<a h

    テキストファイルの http://~を<a href="http://~">http://~</a>に 一括でタグ変換する方法はないでしょうか? 2,3日ググったのですが見つからず初質問です(;´・ω・) 文字××××××××××××× ××××××××××××××× ××××××××××××××× http://~~ 文字××××××××××××× ××××××××××××××× ××××××××××××××× http://~~ のようなテキストファイルのhttp://~~部分を <a href="http://~">http://~</a>に。。。 かなりの量があるので何か方法はないのかなと思ってます。 ホームページビルダー16、テキストエディッターでも色々試したみたのですがわかりませんw もしかしてできないのかな?と思ってますが 誰か知ってる方がいるかも!と質問させてもらいます~ 初質問で不手際、マナーもなってないかも知れませんがよろしくお願いします。

    • ベストアンサー
    • HTML
  • Firefox のバグ?ネスト時のレンダリングについて。

    Firefox のバグかと思い調べたのですが、調べ方が悪いのか解決策を見出すことができませんでした。 問題ですが、まず以下のHTMLソースをコーディングしました。これを iframe.html として、別のファイルから参照させます。 ■iframe.html の中身 <style type="text/css"> .Link{font-size:10px;color:blue;cursor:hand;} .Title{font-size:14px;color:#000;} .Text{font-size:12px;color:#000;} </style> <table> <tr> <td> <a href="Link1" class="Link"> <div class="Title">text</div> <div class="Text">text</div> </a> </td> <td> <a href="Link2" class="Link"> <div class="Title">text</div> <div class="Text">text</div> </a> </td> </tr> </table> ■別ファイルの中身 <body> <iframe src="iframe.html"></iframe> </body> なぜこういう構造になっているかというと、まず a タグの アンカー機能を子要素に継承させ、その中の a タグにネストされるどの部分をクリックしてもリンク先を同じにしたいからです。 IE,Opera等では問題ないのですが、Windows版 Firefox2 で確認し、何度もリロードしているとたまに、 .Title と .Text が効いてないような表示になります。それも必ず後に記述されている td 側の中身が。 はてな、と思いFirebugでみてみると、以下のようにレンダリングされていました。 <a href="Link2" class="Link"> <div class="Title"><a href="Link2" class="Link">text</a></div> <div class="Text"><a href="Link2" class="Link">text</a></div> </a> この原因がわかりません。 以下のような構造にして、 <div> <div class="Title"><a href="Link2" class="Link">text</a></div> <div class="Text"><a href="Link2" class="Link">text</a></div> </div> CSSを編集すれば解決することなのですが、 Link2 のURLは非常に長く何回もアンカータグを記述するのは避ける必要がありました。 どうかよろしくお願いします。

  • HTML トップページから各ページへのタグの作り方

    ホームヘージを作っていますが、 ド素人で分かりません。 教えてください。 http://webz.jugem.jp/?tid=12 上記のようなホームページを作るのですが、 「menu1」のボタンから新しいページを作りたいのですが、 どのようなタグを使えばよいのでしょうか? 下記はトップページの一部分です。 次のページに移動するにはどこへそのタグを書き込めば良いでしょうか? <div class="header"><p class="description">{blog_description}</p></div> <div class="navigation"> <a href="./" id="active">Home</a> <a href="./#top">menu1</a> <a href="./#top">menu2</a> <a href="./#link">Link</a> <a href="./?pid=1">Profile</a> <div class="clearer"></div> </div>