• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpで名簿データを出力)

PHPで名簿データを出力する方法

このQ&Aのポイント
  • PHPを使用して、名簿データを一つの枠に番号、名前、住所、電話、メールの順で書き出し、一列に4名分のデータを並べる方法を教えてください。
  • CGIとは異なり、今回はPHPを使用するよう指示されました。しかし、私はPHPについての知識が不足していて、月曜日までに完成させる自信がありません。お手数ですが、どのように書けばよいか教えてください。
  • meibo.txtという名前のファイルを開き、その中のデータを取得してください。取得したデータを使用して、テーブルを作成し、番号、名前、住所、電話、メールの順で表示してください。4名分のデータが一列に並ぶようにしてください。

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

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

5列ごとに行を変えるのでしょうか? 元ソースのフローを活かすとこんな感じでしょうか? <?PHP $fp=fopen("meibo.txt","r"); print "<table border=1>\n<tr>\n"; $count = 0; $col_length=5; while(($data = fgets($fp,4096)) !== FALSE) { if ($count >= $col_length){print "</tr>\n<tr>\n"; $count = 0;} $data=str_replace(array("\r","\n"),"",$data); list($id,$name,$address,$tel,$mail)=explode("<>",$data); print <<<HTML <td>$id<br>$name<br>$address<br>$tel<br>$mail</td> HTML; $count++; } if ($count > 0){for($i=$count;$i<$col_length;$i++) print "<td>&nbsp;</td>\n";} print "</tr>\n</table>\n"; ?>

qwert789
質問者

お礼

ご教示ありがとうございます。 4列で行を変えたつもりでしたが…5行になってましたか(汗 ソースを使わせて頂きます。4行に変えて^^ ご教示ありがとうございました。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Perlかと思ったら、 「print=」なんてものが出てくるので違う言語(CGI言語?)なのでしょうか? などというのはおいといて。 これをそのままPHPの文法や関数にするだけです。 例えば split(/<>/) をPHPのマニュアルで似たものが無いか探します。 http://php.net/manual/ja/function.split.php splitそのものがありましたが、(5.3.0以降では)非推奨とあります。 ですが、よく読むと下に 「Perl の @chars = split('', $str) と同等の処理をする方法を知りたい場合は、 preg_split() あるいは str_split() の例を参照ください」 とあります。

qwert789
質問者

お礼

ご教示ありがとうございます。 perlです。「print=」 は寝ぼけてたってことにしてください。 m(_ _)m 今日は眠いし時間もないので、週明けにリンク先のページを参考に勉強させて頂きます。ありがとうございました。

関連するQ&A