- ベストアンサー
HTMLから正規表現で必要な情報を取得したい
- HTMLから(A)~(J)の値を取得する方法を教えてください。
- PHPで正規表現を使ってHTMLから(A)~(J)の値を取得する方法を教えてください。
- PHP5を使用して、HTMLの(A)~(J)の値を取得する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たとえばこんな感じ <? $html=<<<eof <tr bgcolor="#ffffff"> <td align="center">(A)<br></td> <td align="center">(B)<br></td> <td align="center">(C)<br></td> <td><a href="http://aaaaa.co.jp">(D)</a><br></td> <td align="right">(E)</td> <td align="right">(F)<br></td> <td align="right">(G)</td> <td align="right">(H)</td> <td align="right">(I)</td> <td align="center" nowrap><font color="#FFFFFF">(J)</font></td> </tr> eof; preg_match_all("/<td(?:\s+.*?)*>.*?<\/td>/",$html,$matches); $array=$matches[0]; foreach($array as $key=>$val){ $array[$key]=strip_tags($val); } print_r($array); ?> ようはtdタグに挟まれた文字列を取得して、タグをあとから外す。 ただし(A)~(I)がタグを含む場合は別のアプローチが必要です
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
この場合どのような値(配列?)が返ってくることを期待していますか? 補足が必要です。
補足
回答ありがとうございます。補足させて頂きます。 (A)~(J)の値が格納された連想配列または配列が返ってくれば嬉しいです(理想は連想配列)。 例えば) array = { 'A' => (A), 'B' => (B), 'C' => (C), (略) } または、 array[0] = (A) array[1] = (B) array[2] = (C) 個人的にはpreg_match_allを利用して実現できそうな気がするのですが、 実力不足で上手くできませんでした。 他にXPathなども考えてみましたが、難しいです。
お礼
返事が遅くなり申し訳ございませんでした。 教えていただいた方法で実現できました。 strip_tagsでタグを削除する発想がなかったのでとても勉強になりました。 ありがとうございました。