質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3410閲覧

【PHP】fgetcsv()の第2引数のlengthはバイト数か文字数か

tomoyuki123

総合スコア273

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/11/30 07:19

編集2018/11/30 08:36

掲題のことを調べようとして公式を見たのですが書いてるように見えませんでした。
http://php.net/manual/ja/function.fgetcsv.php

以下からソースを読んでがんばろうと思ったのですが、どこからどう見ていいのかわからず立ち往生しています。
http://jp2.php.net/get/php-5.6.26.tar.gz/from/a/mirror

どなたか掲題のことがわかる信用のおけるソースか、PHPのfgetcsvに関するソースがある場所と読み方を教えていただけないでしょうか。

よろしくお願いいたします。
※PHPのバージョンは5.6.26になります。

また私はC言語は一度も触ったことがありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「C言語は一度も触ったことがないから分からない」ということでしたら、
PHPで試してみることでもわかると思います。

php

1<?php 2$filename = '/tmp/zzzz.csv'; 3file_put_contents($filename, "あ,い\n"); 4 5$a=file_get_contents($filename); 6 7$handle = fopen($filename, "r"); 8$data = fgetcsv($handle, 6, ","); 9fclose($handle); 10print_r($data); 11 12$handle = fopen($filename, "r"); 13$data = fgetcsv($handle, 7, ","); 14fclose($handle); 15print_r($data); 16 17unlink($filename);

結果

Array ( [0] => あ [1] => ) Array ( [0] => あ [1] => い )

※ということで文字数ではなくバイト数みたいですよ。(UTF-8の「あ」は3byte)

投稿2018/11/30 08:13

taka-saan

総合スコア665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomoyuki123

2018/11/30 08:32

その発想がありませんでした。すみません、助かりました。
guest

0

"php source code fgetcsv" でググると、
最初に現れるのが file.c です。

1982行目あたりに fgetcsv があります。

C

1/* {{{ proto array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]]) 2 Get line from file pointer and parse for CSV fields */ 3PHP_FUNCTION(fgetcsv) 4{ 5

length は lev_zv として取り込んでいるようです。

C

1 ZEND_PARSE_PARAMETERS_START(1, 5) 2 Z_PARAM_RESOURCE(fd) 3 Z_PARAM_OPTIONAL 4 Z_PARAM_ZVAL(len_zv) 5 Z_PARAM_STRING(delimiter_str, delimiter_str_len) 6 Z_PARAM_STRING(enclosure_str, enclosure_str_len) 7 Z_PARAM_STRING(escape_str, escape_str_len) 8 ZEND_PARSE_PARAMETERS_END(); 9

投稿2018/11/30 07:34

daisuke7

総合スコア1563

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomoyuki123

2018/11/30 08:32

ありがとうございます!ただ勉強不足で何が書いてあるかさっぱりでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問