<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>php4 | Web活メモ帳</title>
	<atom:link href="https://blog.verygoodtown.com/tag/php4/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.verygoodtown.com</link>
	<description>WEB開発者が使える世界の情報を発信します</description>
	<lastBuildDate>Mon, 26 Dec 2011 10:23:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9.10</generator>
<site xmlns="com-wordpress:feed-additions:1">122803348</site>	<item>
		<title>PHP4でCSVをパースするライブラリ</title>
		<link>https://blog.verygoodtown.com/2011/12/php4-csv-parser/</link>
					<comments>https://blog.verygoodtown.com/2011/12/php4-csv-parser/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 21 Dec 2011 08:10:40 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[php4]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=7774</guid>

					<description><![CDATA[<p>php4からCSVを読み込むライブラリをご紹介。 今更php4ですか。。。と、思いますよね。。 私もそう思っていたんですが、受諾開発していると、意外と遭遇するんです^^; CSV系のライブラリは検索すればすぐ見つかるかな [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2011/12/php4-csv-parser/">PHP4でCSVをパースするライブラリ</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/12/20111221-01.png" alt="20111221-01" title="20111221-01" width="153" height="80" class="alignnone size-full wp-image-7775" /></p>
<p>php4からCSVを読み込むライブラリをご紹介。</p>
<p>今更php4ですか。。。と、思いますよね。。<br />
私もそう思っていたんですが、受諾開発していると、意外と遭遇するんです^^;</p>
<p>CSV系のライブラリは検索すればすぐ見つかるかな、と思ったんですが、意外とライブラリ探しに時間がかかったのでブログでご紹介します。</p>
<p>このライブラリを使うと<strong>ファイル名を指定したら配列で値を取得</strong>できるので、結構便利ですよ。<br />
※ちなみに、php標準の関数であるfgetcsvでもOKという方は読み飛ばしてくださいませ。</p>
<p>使い方は以下<br />
<span id="more-7774"></span></p>
<h3>CSVReaderクラス</h3>
<p>クラスはCodeigniterの<a href="http://codeigniter.com/wiki" target="_blank">Wiki</a>に<a href="http://codeigniter.com/wiki/CSVReader" target="_blank">CSVReader</a>というクラスがありましのたで<br />
それを使います。</p>
<pre class="brush:php;">
class CSVReader {
    
    var $fields;            /** columns names retrieved after parsing */ 
    var $separator = ';';    /** separator used to explode each line */
    var $enclosure = '"';    /** enclosure used to decorate each field */
    
    var $max_row_size = 4096;    /** maximum row size to be used for decoding */
    
    /**
     * Parse a file containing CSV formatted data.
     *
     * @access    public
     * @param    string
     * @param    boolean
     * @return    array
     */
    function parse_file($p_Filepath, $p_NamedFields = true) {
        $content = false;
        $file = fopen($p_Filepath, 'r');
        if($p_NamedFields) {
            $this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
        }
        while( ($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false ) {            
            if( $row[0] != null ) { // skip empty lines
                if( !$content ) {
                    $content = array();
                }
                if( $p_NamedFields ) {
                    $items = array();
                    
                    // I prefer to fill the array with values of defined fields
                    foreach( $this->fields as $id => $field ) {
                        if( isset($row[$id]) ) {
                            $items[$field] = $row[$id];    
                        }
                    }
                    $content[] = $items;
                } else {
                    $content[] = $row;
                }
            }
        }
        fclose($file);
        return $content;
    }
}</pre>
<h3>使い方</h3>
<p>使い方はこんな感じです。</p>
<p>■CSVファイル</p>
<pre class="code">
name,address,tel
Aさん,東京都,03-0000-0000
Bさん,千葉県,047-000-000
Cさん,札幌市,011-000-0000

</pre>
<p>■コード</p>
<pre class="brush:php;">
$csv = new CSVReader();
$csv->separator = ','; //区切り文字を指定
$data = $csv->parse_file('./hoge.csv');  //ファイル名を指定
var_dump($data);</pre>
<p>■出力</p>
<pre class="code">array(3) {
  [0]=>
  array(3) {
    ["name"]=>
    string(5) "Aさん"
    ["address"]=>
    string(6) "東京都"
    ["tel"]=>
    string(12) "03-0000-0000"
  }
  [1]=>
  array(3) {
    ["name"]=>
    string(5) "Bさん"
    ["address"]=>
    string(6) "千葉県"
    ["tel"]=>
    string(11) "047-000-000"
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(5) "Cさん"
    ["address"]=>
    string(6) "札幌市"
    ["tel"]=>
    string(12) "011-000-0000"
  }
}
</pre>
<p>1行目をキーにして、配列に変換してくれました。</p>
<p>便利ですね〜。<br />
作者の方には感謝です。</p>
<p>という事でPHP4でCSVをパースするライブラリでした。</p>The post <a href="https://blog.verygoodtown.com/2011/12/php4-csv-parser/">PHP4でCSVをパースするライブラリ</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2011/12/php4-csv-parser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7774</post-id>	</item>
	</channel>
</rss>
