2012年11月20日火曜日

開発環境

『初めてのPHP5』 (David Sklar 著、 桑村 潤 翻訳、 廣川 類 翻訳、 オライリー・ジャパン、2005年、ISBN978-4-87311-257-2)の10章(ファイルの操作)10.9(演習問題)2を解いてみる。

2.

Eメールアドレス尾を含むアドレスを1行ごとに作成したテキスト

addresses.txt

aa@bb
bb@cc
cc@dd
dd@ee
ee@ff
ee@ff
DD@ee
gg@hh
hh@ii
ii@jj

phpのコード

sample67.php

<?php
  $in = fopen('addresses.txt','rb');
  if(! $in){
     die("Error opening addresses.txt");
  }
  $addresses = array();
  for($line = fgets($in); !feof($in); $line = fgets($in)){
    $line = trim($line);
    print "$line<br />";
    if(array_key_exists($line, $addresses)){
      $addresses[$line] += 1;
    } else {
      $addresses[$line] = 1;
    }
  }
  if(! fclose($in)){
    print "Error closing Addresses.txt: {$php_errormsg}<br />";
  }
  var_dump($addresses);
  print "<br />";
  $out = fopen('addresses-count.txt', 'wb');
  if(! $out){
     die("Error: opening addresses-count.txt");
  }
  foreach($addresses as $address => $count){
    fwrite($out, "$address, $count\n");
  }
  if(! fclose($out)){
    die("Error:closing addresses-count.txt");
  }
?>

ファイルの書き込みは上手くいってないけど(パーミッションの問題?)とりあえずこんな感じでいいのかな。。

0 コメント:

コメントを投稿