人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpの正規表現の質問です
a.phpファイルを作成しています
テーブルタグの中はtrが100個くらい並んでいます

a.php
********************
<html><body>
<?php
$s = '';
$b = strip_tags( @file_get_contents( __FILE__ ), '<tr><td>');
if ( preg_match_all{
}
echo ( $s );
?>
<TABLE>
<tr>
<td>1</td>
<td>1</td>
<td>ほげ1</td>
<td>ほげ2</td>
<td>ほげ3</td>
<td>ほげ4</td>
<tr>
<td>1</td>
<td>2</td>
<td>ほげ5</td>
<td>ほげ6</td>
<td>ほげ7</td>
<td>ほげ8</td>
</tr>




</TABLE></body></html>
********************

テーブルタグの中の、一番最初の<tr>の中の上から5番目の<td>タグの中身だけを抽出して
以下のように表示したいのですが
正規表現の条件をどのように書けばいいでしょうか?

a.php
********************
a.php
********************
<html><body>
ほげ4
<TABLE>
<tr>
<td>1</td>
<td>1</td>
<td>ほげ1</td>
<td>ほげ2</td>
<td>ほげ3</td>
<td>ほげ4</td>
<tr>
<td>1</td>
<td>2</td>
<td>ほげ5</td>
<td>ほげ6</td>
<td>ほげ7</td>
<td>ほげ8</td>
</tr>




</TABLE></body></html>
********************

●質問者: takanii
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●300ポイント ベストアンサー

http://q.hatena.ne.jp/1378870759 の続きと書いておいがほうがよいですよ。

正規表現ではなくコードを入れ替えたほうが応用ききやすいです。

$tds[0][1] が1列目
$tds[1][1] が2列目
$tds[n][1] が(n-1)列目

<?php
 $s = '';
 $b = strip_tags( @file_get_contents( __FILE__ ), '<tr><td>');
 if ( preg_match_all("#<tr[^<]+?(.+?)</tr#is", $b, $trs , PREG_SET_ORDER) ) {
 $s = '<select name="問題番号">' . "\n";
 $tr = $trs[0]; # 一番最初だけなのでforeachを使わない
 if ( preg_match_all("#<td[^<]+?(.+?)</td#is", $tr[1], $tds , PREG_SET_ORDER) ) {
 $s .= '<option value="' . $tds[4][1] . '">' . $tds[4][1] . '</option>' . "\n";
 }
 $s .= '</select>' . "\n";
 }
 echo ( $s );
?>

takaniiさんのコメント
ループ表示ではなく一つだけ表示していただけたら大丈夫な場合はどこをいじればいいのでしょうか?

うぃんどさんのコメント
SELECTもOPTIONも不要ならさらに簡略化できます。 >|php| <?php $s = ''; $b = strip_tags( @file_get_contents( __FILE__ ), '<tr><td>'); if ( preg_match_all("#<tr[^<]+?(.+?)</tr#is", $b, $trs , PREG_SET_ORDER) ) { $tr = $trs[0]; # 一番最初だけなのでforeachを使わない if ( preg_match_all("#<td[^<]+?(.+?)</td#is", $tr[1], $tds , PREG_SET_ORDER) ) { $s .= $tds[4][1] . "\n"; } } echo ( $s ); ?> ||<
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ