2006年4月12日

[PHP-users 28983] Re:特定タグの文字を抽出するには

いわせです。

やってみました。ちとみにくいですがご勘弁をm(__)m

--- ソース ----------------------------------------------

// サンプルHTML文字列

$html = <<

てすと</tiltle><br /> </head><br /> <body><br /> <h1>てすと</h1><br /> <table border='1'><br /> <tr><br /> <td nowrap><br /> 2006-2-4<br /> </td><br /> <td><br />   芸能人A<br /> </td><br /> <td><a href="/hoge/020492">題名A</a></td><br /> <td>50 MB</td><br /> <td><br /> <span><br /> <img border="0" src="http://hoge.com/hoge.gif"></span><br /> </td><br /> <td style="color: blue;"> </td><br /> </tr></p> <p><tr><br /> <td nowrap><br /> 2006-2-8<br /> </td><br /> <td><br />   芸能人B</p> <p></td><br /> <td><a href="/hoge/020492">題名B</a></td><br /> <td>80 MB</td><br /> <td><br /> <span><br /> <img border="0" src="http://hoge.com/hoge.gif"></span><br /> </td><br /> <td style="color: blue;"> </td><br /> </tr><br /> <tr><br /> <td nowrap><br /> 2006-2-8<br /> </td><br /> <td><br />   芸能人-3<br /> </td><br /> <td><a href="/hoge/020492">題名3</a></td><br /> <td>80 MB</td><br /> <td><br /> <span><br /> <img border="0" src="http://hoge.com/hoge.gif"></span><br /> </td><br /> <td style="color: blue;"> </td><br /> </tr><br /> </table><br /> <hr /><br /> </body><br /> </html></p> <p>HTML;</p> <p>// ここから解析<br /> $result = array();<br /> if<br /> (preg_match_all("!<tr[^>]*>[^<]*<td[^>]*>.*?</td>[^<]*<td[^>]*>(.*?)</td>[^<]*<td[^>]*>(.*?)</td>[^<]*<td[^>]*>.*?</td>[^<]*</tr>!s",<br /> $html, $matches)) {<br /> $i = 0;<br /> foreach ($matches[1] as $key) {<br /> $key = trim(str_replace(' ', '', $key));<br /> $value = trim(preg_replace("/<\/?[^>]*>/", '', $matches[2][$i]));<br /> $result[$key] = $value;<br /> ++$i;<br /> }<br /> }</p> <p>// 結果表示<br /> echo "<pre>";<br /> print_r($result);<br /> echo "</pre>";</p> <p>?></p> <p>--- 結果 ----------------------------------------------</p> <p>Array<br /> (<br /> [芸能人A] => 題名A<br /> [芸能人B] => 題名B<br /> [芸能人-3] => 題名3<br /> )</p> <p>_______________________________________________<br /> PHP-users mailing list PHP-users@xxxxx<br /> <a href="http://ns1.php.gr.jp/mailman/listinfo/php-users">http://ns1.php.gr.jp/mailman/listinfo/php-users</a><br /> PHP初心者のためのページ - 質問する前にはこちらをお読みください<br /> <a href="http://www.php.gr.jp/php/novice.php3">http://www.php.gr.jp/php/novice.php3</a></p> <span class="posted">投稿者 xml-rpc : 2006年4月12日 00:27</span> </div> <form method="post" action="http://hoop.euqset.org/blog/mt-vote.cgi"> <input type="hidden" name="__mode" value="vote" /> <input type="hidden" name="entry_id" value="34811" /> 役に立ちました?: <select name="value" id="value"> <option value="0">評価を選んでください</option> <option value="5">yes/5 ずばり!すごく役に立った(^^)</option> <option value="4">part/4 一部役に立った(^^)</option> <option value="3">try/3 これで試してみる(^^;</option> <option value="2">no/2 うーん、今ひとつ(--)</option> <option value="1">no/1 探しているものとは違いました(--;</option> </select> <input type="submit" value="フィードバック" /> </form> 過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0) <div class="trackback-url">本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/34723<br> </div> <div class="trackback-head"><a name="trackbacks"></a>トラックバック</div> <div class="comments-head"><a name="comments"></a>コメント</div> <div class="comments-head">コメントする</div> <div class="comments-body"> <form method="post" action="http://hoop.euqset.org/blog/mt-comment2006.cgi" name="comments_form"> <input type="hidden" name="static" value="1" /> <input type="hidden" name="entry_id" value="34811" /> <label for="author">Name:</label><input tabindex="1" id="author" name="author" /><br /> <label for="email">Mail:</label><input tabindex="2" id="email" name="email" /><br /> <label for="url">URL: </label><input tabindex="3" id="url" name="url" /><br /> <!-- MTSCodeInsert --> <div id="comments-open-captcha"><div class="label"><label for="captcha_code">Captcha:</label></div><div class="field"><input type="hidden" name="token" value="nmjkxc4Gy7lxPQVHgcxTi70X8sotdqFFSwZHlrOp" /><img src="http://hoop.euqset.org/blog/mt-comment2006.cgi/captcha/5/nmjkxc4Gy7lxPQVHgcxTi70X8sotdqFFSwZHlrOp" width="150" height="35" /><br /><input name="captcha_code" id="captcha_code" value="" autocomplete="off" /><p>画像の中に見える文字を入力してください。</p></div></div> <label for="text">コメント:</label><br /> <textarea tabindex="4" id="text" name="text" rows="5" cols="60"></textarea><br /> <input type="submit" name="preview" value=" 確認 " /> <input style="font-weight: bold;" type="submit" name="post" value=" 投稿 " /><br /><br /> </form> </div> </div> </div> <div id="links"> <div class="sidetitle"> Search </div> <div class="side"> <form method="get" action="/blog/namazu.cgi"> <p> <strong>namazu2によるサイト内検索:</strong> <input type="hidden" name="idxname" value="mlog"> <input type="text" name="query" size="20" value=""> <input type="submit" name="submit" value="検索"> <input type="hidden" name="whence" value="0"> <input type="hidden" name="max" value="100"> <input type="hidden" name="result" value="normal"> <input type="hidden" name="sort" value="date:late"> </p> </form> <!-- Google CSE Search Box Begins --> <form id="searchbox_016883500004681887874:ztuqt4yl9hy" action="http://www.google.com/cse"> <input type="hidden" name="cx" value="016883500004681887874:ztuqt4yl9hy" /> <input name="q" type="text" size="20" /> <input type="submit" name="sa" value="検索" /> <input type="hidden" name="cof" value="FORID:0" /> <INPUT type="hidden" name="hl" value="ja"> <INPUT type="hidden" name="num" value="50"> <INPUT type="hidden" name="ie" value="euc-jp"> <INPUT type="hidden" name="oe" value="euc-jp"> </form> <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_016883500004681887874%3Aztuqt4yl9hy"></script> <!-- Google CSE Search Box Ends --> <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=htthooeuqorg-22&o=9&p=27&l=qs1&f=ifr" width="180" height="150" frameborder="0" scrolling="no"></iframe> </div> <script type="text/javascript"><!-- amazon_ad_tag = "htthooeuqorg-22"; amazon_ad_width = "160"; amazon_ad_height = "600";//--></script> <script type="text/javascript" src="http://www.assoc-amazon.jp/s/ads.js"></script> <script type="text/javascript"><!-- amazon_ad_tag = "htthooeuqorg-22"; amazon_ad_width = "160"; amazon_ad_height = "600"; amazon_ad_logo = "hide";//--></script> <script type="text/javascript" src="http://www.assoc-amazon.jp/s/ads.js"></script> <div class="syndicate"> <a href="/index.rdf">Syndicate this site (XML)</a><br /> <a href="http://hoop.euqset.org/index.rdf">Syndicate Owner's Blog site (XML)</a> </div> </body> </html>