PHPã§csvãã¡ã€ã«ãèªã¿èŸŒã¿ãããåå¿è åãã
PHPã«ããfgetcsvãcsvããŒã¿ãé åã«å€æã§ãã颿°ã§ããããšã説æããŸãããŸãfgetcsvã®äœ¿ãæ¹ã ãã§ã¯ãªããfopenãšäœµçšããŠcsv圢åŒã®ããŒã¿ãåŠçããæ¹æ³ãããµã³ãã«ã³ãŒãã亀ããŠè§£èª¬ããŸããè¿œå æ å ±ãšããŠãfopenã«ããã¢ãŒããåãæ¿ããããšã§ããã¡ã€ã«ã®èªã¿èŸŒã¿ãããã¡ã€ã«ã®æžãåºããã®2ã€ã®åŠçã䜿ãåããæ¹æ³ã«ã€ããŠã説æãè¡ããŸããPHPãå©çšããWebãµãŒãã¹ã®äžã«ã¯ãã¢ããããŒãããcsvã®ããŒã¿ãèªã¿èŸŒã¿ããã©ãŠã¶äžã«è¡šç€ºããããããªãã®ããããŸãã
ããã¯ã¢ããããŒããããã¡ã€ã«ãPHPã®æ©èœã䜿ã£ãŠèªã¿èŸŒã¿ãããŒã¿ããŒã¹ã«ç»é²ããããšã§å®çŸããŠããŸãã
ä»åã¯ãããã£ãcsv圢åŒã®ããŒã¿ãåŠçããããã«å¿ èŠãªPHPã®é¢æ°ãfgetcsvã«ã€ããŠè§£èª¬ããŸãã
PHP fopenã䜿ã£ãŠcsvãã¡ã€ã«èªã¿èŸŒã¿
å€éšãã¡ã€ã«ããããŒã¿ãèªã¿èŸŒã¿ãããµãŒãã¹ã¯ãWebäžã«ããã€ãååšããŸãã
äŸãã°csvãããã¹ããã¡ã€ã«ããã©ãŠã¶ããã¢ããããŒããããã¡ã€ã«èªã¿èŸŒã¿ãè¡ã£ãåŸã§ãäœããã®åŠçãPHPã®äžã§ãããã±ãŒã¹ãæããããŸãã
ãããã£ããšãã«ãPHPã§ã¯fopenãšãã颿°ã䜿ããŸããfopenã¯file openãæå³ããŠããããã¡ã€ã«èªã¿èŸŒã¿ã®ãšãã«æŽ»çšããŸãã
ããã§ã¯PHPã³ãŒãã®äžã§ã©ã®ããã«æžãã®ããèŠãŠã¿ãŸãããã
ãµã³ãã«ã³ãŒã
ãã¡ã€ã«èªã¿åºãã®ãµã³ãã«ã³ãŒãã¯ä»¥äžã®ããã«ãªããŸãã
<?php
$f = fopen("./sample.csv", "r");
fclose($f);
?>
fopenã«æž¡ãåŒæ°ã¯äž»ã«2ã€ã§ãã
1ã€ã¯éãããå€éšãã¡ã€ã«åããã1ã€ã¯ãã¡ã€ã«æäœã¢ãŒãã§ããäžã®äŸã®å Žåã§ããšããã¡ã€ã«åã¯"./sample.csv"ãã¢ãŒã㯠"r"ãšãªã£ãŠããŸãã
ã¢ãŒã"r"ã®æå³ã¯å€éšãã¡ã€ã«ãèªã¿èŸŒã¿ãããã°ã©ã å
ã§åŠçã§ãã圢åŒã«å€æãããšãããã®ã§ãã詳ããããšã¯åŸã§è§£èª¬ããŸãã
ãŸãæåŸã®fclose($f)ã§ãããããã¯éãããã¡ã€ã«ãéããæå³ã§äœ¿ãããŸãã
fopenã§æå®ã§ããã¢ãŒãã®çš®é¡
PHPã®fopenã§ã§ããããšã¯å€§ããåããŠ2ã€ãããŸãã
ããã¯ããã¡ã€ã«èªã¿èŸŒã¿ããšããã¡ã€ã«æžãåºããã§ããããã§ã¯ãã®2ã€ãã©ã®ããã«äœ¿ãåãããã解説ããŸãã
ãã®ã»ã¯ã·ã§ã³ã§èª¬æããããšã¯ã¢ãŒãã®ã»ãã®äžéšã§ãã®ã§ããã詳ããç¥ãããæ¹ã¯PHPå ¬åŒãµã€ãã確èªããŠã¿ãŠãã ããã
èªã¿èŸŒã¿ã¢ãŒã
ããã»ã©ç€ºããäŸã§ã¯ãèªã¿èŸŒã¿ã®"r"ã䜿ã£ãŠããŸããã
rã¯readã®é æåããæ¥ãŠãããäžã§èª¬æãããšããããã¡ã€ã«èªã¿èŸŒã¿ãã®å Žåã«äœ¿ããŸãã
ã¢ãŒãã®äžã«ã¯rã ãã§ãªããr+ãšãããã®ãååšããŸãããã¡ãã¯rãšãªã£ãŠããŸãããèªã¿ã»æžãã©ã¡ããè¡ãããšããæå³ã§äœ¿çšã§ããŸãã
äžèŠäŸ¿å©ããã§ãããèªã¿æžãã©ã¡ããåæã«è¡ããšããããšã¯ãããŒã¿ããã€èªã¿ã»æžãããŠããããæç€ºçã«ç€ºããŠããªãããšã«ãªããŸãããã®ãããr+ã®äœ¿çšã¯ãå§ãããŸããã
æžã蟌ã¿ã¢ãŒã
æžã蟌ã¿ã¢ãŒãã¯"w"ãšãªã£ãŠããŸããwriteã®wã§ããã
æžãæ¹ã¯ããã»ã©èª¬æããfopenã®ãµã³ãã«ã³ãŒãã«ãã"r"ã®éšåã"w"ãšããã ãã§ãã
fopen("./sample.csv", "w");
"w"ã"r+"ãšåæ§ã"w+"ãšããã¢ãŒããååšããŸãããã¡ãã®äœ¿çšã"r+"ãšåãçç±ã«ãŠããå§ãããŸããã
fgetcsvãšã¯
PHPã®fgetcsvãšã¯fopen "r"ã¢ãŒãã«ãŠèªã¿èŸŒã¿ãããã¡ã€ã«ã®ããŒã¿åœ¢åŒãcsvã ã£ãå ŽåãããŒã¿æ§é ãé
åã«ããŠåºåãã颿°ã§ãã
ãã®ããcsvã®èªã¿èŸŒã¿åŠçãè¡ãéã«ã¯ãããªãã䜿çšãã颿°ã«ãªããŸãã
fgetcsv颿°ã®æžãæ¹ã¯ä»¥äžã®éãã§ãã
fgetcsv($handle)
$handleã«ã¯ãfopenã«ãã£ãŠäœæãããããŒã¿ã¹ããªãŒã ãæå®ããŸããããŒã¿ã¹ããªãŒã ãšã¯äžã«æãããµã³ãã«ã³ãŒãå ã«ãã"$f"ã®ããšã§ãã
PHPã®fgetcsvã«ãã£ãŠååŸã§ããcsvããŒã¿ã®å€éé åã¯ãforæãwhileæãå©çšããŠ1è¡ã®é åãé çªã«ååŸããããšãã§ããŸãã
fgetcsvã䜿ã£ãŠcsvãã¡ã€ã«ãé åã«å€æãã
ä»åãµã³ãã«ã³ãŒããšããŠåãäžããŠãããµã³ãã«ã³ãŒãã®æµãã¯ä»¥äžã®éãã§ãã
fopenã䜿ã£ãŠ"r"ã¢ãŒãã§csvãéããèªã¿èŸŒã
â
fopenã«ãã£ãŠäœæãããã¹ããªãŒã ãfgetcsvã«æž¡ããPHPå
ã§csvããŒã¿ã®é
åãäœæãã
â
whileæã䜿ã£ãŠãPHPå
ã§çæãããcsvããŒã¿ã®å€éé
åãã1è¡ãã€åãåºããHTML圢åŒã§è¡šç€ºããã
â
æåŸã«ãã¡ã€ã«ãcloseãã
ããã§ã¯å®éã«ããµã³ãã«ã³ãŒãã確èªããŠãããŸãããã
ãµã³ãã«ã³ãŒã
ä»åèªã¿èŸŒããµã³ãã«csvã¯ä»¥äžã®éãã§ãã
å·Šããé çªã«ãIDãååãæ§å¥ããã¹ãã®ç¹æ°ãšããŠããŸãã
sample.csv
1, ä», ç·, 100ç¹
2, é, ç·, 50ç¹
3, ç¯, 女, 70ç¹
4, åª, 女, 90ç¹
5, 翌, ç·, 27ç¹
ãµã³ãã«csvãfopenã®"r"ã¢ãŒãã§èªã¿èŸŒã¿ãHTMLãžåºåããããã°ã©ã ã§ãã
sample.php
<?php
// #1 ãã¡ã€ã«ã®èªã¿èŸŒã¿
$f = fopen("./sample.csv", "r");
// #2 ããŒãã«ã®HTMLãçæ
echo "<table>
<tr>
<th>ID</th>
<th>åå</th>
<th>æ§å¥</th>
<th>ãã¹ãã®ç¹æ°</th>
</tr>";
// #3 csvã®ããŒã¿ãé
åã«å€æããHTMLã«åã蟌ãã§ãã
while($line = fgetcsv($f)) {
echo "<tr>";
for ($i=0;$i<count($line);$i++) {
echo "<td>" . $line[$i] . "</td>";
}
echo "</tr>";
}
echo "</table>";
// #4 ãã¡ã€ã«ãéãã
fclose($f);
?>
ã§ã¯ãµã³ãã«ã³ãŒãã®è©³çްããå°ããã€èŠãŠãããŸãããã
// #1 ãã¡ã€ã«ã®èªã¿èŸŒã¿
$f = fopen("./sample.csv", "r");
ãŸãã¯#1ããã§ãã
ããã§ã¯fopenã«ãŠãsample.csvãã¡ã€ã«ãèªã¿èŸŒã¿ãŸããããã«ãã£ãŠã¹ããªãŒã ãšããããŒã¿åœ¢åŒã§csvãã¡ã€ã«ãèªã¿èŸŒãŸããã®ã§ããã$fãžä»£å
¥ããŠããŸãã
// #2 ããŒãã«ã®HTMLãçæ
echo "<table>
<tr>
<th>ID</th>
<th>åå</th>
<th>æ§å¥</th>
<th>ãã¹ãã®ç¹æ°</th>
</tr>";
#2ã§ã¯HTMLãechoã䜿ã£ãŠçæããŠããŸãã
ä»åã¯èªã¿èŸŒãã csvãã¡ã€ã«ãããŒãã«åœ¢åŒã«å€æãããããããã§ããŒãã«ã®ããããå®çŸ©ããŠããŸãããããåã¯csvã®ããŒã¿å
容ãšäžèŽããå¿
èŠããããããIDãååãæ§å¥ããã¹ãã®ç¹æ°ããšããŠããŸãã
// #3 csvã®ããŒã¿ãé
åã«å€æããHTMLã«åã蟌ãã§ãã
while($line = fgetcsv($f)) {
echo "<tr>";
for ($i=0;$i<count($line);$i++) {
echo "<td>" . $line[$i] . "</td>";
}
echo "</tr>";
}
echo "</table>";
#3ã®åŠçãä»åãã£ãšãéèŠãªãã€ã³ãã«ãªããŸãã
ãŸãã¯$line = fgetcsv($f)ã§ã$lineã«csvããèªã¿èŸŒãã é
åãã代å
¥ããŠããŸããããã«whileæã§é
åã1è¡ãã€ååŸããŠããŸãã
$lineã®äžã¯[1, ä», ç·, 100ç¹]ãšããé
åãå
¥ã£ãŠããŸãã
ããã«foræã®å
ã§$lineã®äžèº«ãåå²ããŠããŸããã€ãŸããããã§ã¯[1, ä», ç·, 100ç¹]ã®äžã«ããèŠçŽ ãé çªã«åãåºããŠãtdã¿ã°ã®èŠçŽ ãšããŠæ¿å
¥ããŠããŸãã
æçµçã«ããŒãã«ãããã«æ²¿ã£ãå 容ã®ããŒã¿ããHTML圢åŒã§ãã©ãŠã¶äžã«è¡šç€ºãããããã«ãªããŸãã
// #4 ãã¡ã€ã«ãéãã
fclose($f);
?>
æåŸã«ãã¡ã€ã«ãcloseããŠããã¹ãŠã®åŠçãå®äºãšãªããŸãã
ãŸãšã
ä»åã¯fgetcsvã䜿ããcsv圢åŒã®ãã¡ã€ã«ã®èªã¿èŸŒã¿ãã衚瀺ãŸã§ããµã³ãã«ã³ãŒãã亀ããªãã解説ããŸããã
csvãã¡ã€ã«ã«éãããããã°ã©ã ã«å€éšããããŒã¿ãåã蟌ãããŸãã¯ããã°ã©ã ã®å
éšã«ååšããããŒã¿ããã¡ã€ã«ã«æžãåºãäœæ¥ã¯ããçºçãããããfopenããã®æµããèŠããŠãããšéåžžã«äŸ¿å©ã§ãã
ãŸãfopen颿°ã®æ§é ã¯ã©ã®é¢æ°ã§ã䌌ãŠãããããå¿çšãå©ããããã§ãããšãã«PHPã®fopenã¯CèšèªãPythonã®fopen颿°ã«ãã䌌ãŠããã®ã§ãããã«çè§£ã§ããã§ãããã













