FileMakerãããŒã¹ãšããWebã¢ããªã«ãããŠãCSVãšãã£ãå€éšãã¡ã€ã«ããã®ããŒã¿ã€ã³ããŒããå£ã«ãªãããããšããããšã¯åå玹ä»ãããšãããä»åã¯ããããå®è£ æ¹æ³ã«ã€ããŠç޹ä»ããŠãããã
PHPåŽã§ã®ã«ãŒãã§ããŒã¿ãç»é²ããæ¹æ³
ãŸãã¯ååã®(1)ãPHPåŽã§ã®ã«ãŒãã§ããŒã¿ãç»é²ãããæ¹æ³ã ããã¡ã€ã«ã¢ããããŒãåŠçãšFileMakerããŒãã«ãžã®ã€ã³ããŒããå¥ã ã®PHPã«ãããŠãããªãã
ããŒã¿ããŒã¹ã®ããŒãã«ã¯æ¬¡ã®ãšããã
|
|
ããŒãã«ãfxphp_csvããCSVãã¡ã€ã«åãæ ŒçŽãã |
ããŒãã«ãfxphp_dataããCSVã®ããŒã¿ãæ ŒçŽãã |
ãã¡ã€ã«ã¢ããããŒãç»é¢ - fm_new.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FX.php CSVãã¡ã€ã«ã®ã¢ããããŒã</title>
</head>
<body>
<form action="./fm_file_upload.php" accept-charset="utf-8" enctype="multipart/form-data" method="post">
<table border="1">
<tr>
<th>
CSVãã¡ã€ã«
</th>
<td align="left">
<input name="csvFile" type="file">
</td>
</tr>
</table>
<p>
<input type="submit" value="ã¢ããããŒã">
</p>
<p>
<a href="./fm_list.php">ã¢ããããŒãããã£ã³ã»ã«</a>
</p>
</form>
</body>
</html>
ãã¡ã€ã«ã¢ããããŒãåŠç - fm_file_upload.php
<?php
// å€éšãã¡ã€ã«ã«ãŠ SYSTEM_ATTACH_PATH ãå®çŸ©ããŠããŸã
// define('SYSTEM_ATTACH_PATH', './attached/'); // ç»åã®ä¿åå
include_once('./fx/FX.php');
include_once('./fx/server_data.php');
if (UPLOAD_ERR_OK === $_FILES['csvFile']['error'])
{
// ã¢ããããŒãããããã¡ã€ã«ããªããŒã ããSYSTEM_ATTACH_PATH 以äžã«ä¿å
$uploadFile['csvFile']['filename'] =
date('YmdHis') . '_'. $_FILES['csvFile']['name'];
move_uploaded_file
(
$_FILES['csvFile']['tmp_name'],
SYSTEM_ATTACH_PATH.
$uploadFile['csvFile']['filename']
);
// FileMakerã«ãã¡ã€ã«åãä¿å
$data = new FX($serverIP, $webCompanionPort, $dataSourceType, $scheme);
$data->SetDBData($databaseFileName,'fxphp_csv', 1);
$data->SetDBUserPass($webUN,$webPW);
$data->SetCharacterEncoding('utf8');
$data->SetDataParamsEncoding('utf8');
if (!empty($uploadFile['csvFile']['filename']))
{
$data->AddDBParam('fc_fileName' , $uploadFile['csvFile']['filename']);
}
$dataSet = $data->FMNew();
if ( 0 === (int)$dataSet['errorCode'] )
{
include_once('./fm_list.php');
}
else
{
// ãšã©ãŒåŠç..
echo 'ã¬ã³ãŒãã®ç»é²ã«å€±æããŸããã';
}
}
else
{
// ãšã©ãŒåŠç..
echo 'ãã¡ã€ã«ã®ã¢ããããŒãã«å€±æããŸããã';
}
?>
ãã¡ã€ã«äžèЧ - fm_list.php
<?php
include_once('./fx/FX.php');
include_once('./fx/server_data.php');
// æååãšã¹ã±ãŒãçšé¢æ°
function h($string)
{
return htmlspecialchars(trim($string), ENT_QUOTES, 'UTF-8');
}
// ã¬ã³ãŒãIDã®ååŸçšé¢æ°
function getRecid($str)
{
$tmp = explode('.',$str);
return $tmp[0];
}
$data = new FX($serverIP, $webCompanionPort, $dataSourceType, $scheme);
$data->SetDBData($databaseFileName,'fxphp_csv', 10);
$data->SetDBUserPass($webUN,$webPW);
$data->SetCharacterEncoding('utf8');
$data->SetDataParamsEncoding('utf8');
$dataSet = $data->FMFind();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FX.php ããŒã¿äžèЧ</title>
</head>
<body>
<table border="1">
<thead>
<tr>
<th>
</th>
<th>
ãã¡ã€ã«å
</th>
<th>
ã¢ããããŒãæ¥æ
</th>
</tr>
</thead>
<tbody>
<?php
foreach ( $dataSet['data'] as $key => $value )
{
?>
<tr>
<td>
<a href="./fm_import_csv.php?recid=<?php echo getRecId($key); ?>">ã€ã³ããŒã</a>
</td>
<td>
<?php echo h($value['fc_fileName'][0]); ?>
</td>
<td>
<?php echo h($value['fc_registTimeStamp'][0]); ?>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<p><a href="./fm_new.php">CSVãã¡ã€ã«ã®ã¢ããããŒã</a></p>
</body>
</html>
ã€ã³ããŒãåŠç - fm_import_csv.php
<?php
// å€éšãã¡ã€ã«ã«ãŠ SYSTEM_ATTACH_PATH ãå®çŸ©ããŠããŸã
// define('SYSTEM_ATTACH_PATH', './attached/'); // CSVã®ä¿åå
include_once('./fx/FX.php');
include_once('./fx/server_data.php');
// æååãšã¹ã±ãŒãçšé¢æ°
function h($string)
{
return htmlspecialchars(trim($string), ENT_QUOTES, 'UTF-8');
}
// ãã¡ã€ã«åååŸ
$data = new FX($serverIP, $webCompanionPort, $dataSourceType, $scheme);
$data->SetDBData($databaseFileName,'fxphp_csv', 1);
$data->SetDBUserPass($webUN,$webPW);
$data->SetCharacterEncoding('utf8');
$data->SetDataParamsEncoding('utf8');
$data->SetRecordID($_GET['recid']);
$dataSet = $data->FMFind();
if ('0' !== (string)$dataSet['errorCode'])
{
echo 'ã¬ã³ãŒãã®ååŸã«å€±æããŸãããFileMaker ãšã©ãŒçªå·: ' . $dataSet['errorCode'];
exit;
}
if (file_exists(SYSTEM_ATTACH_PATH.$dataSet['data'][key($dataSet['data'])]['fc_fileName'][0]))
{
echo 'ããŒã¿ãã€ã³ããŒãããŠããŸã';
$count['error'] = 0;
$count['ok'] = 0;
$handle = fopen(SYSTEM_ATTACH_PATH.$dataSet['data'][key($dataSet['data'])]['fc_fileName'][0], 'r');
while (($csv = fgetcsv($handle)) !== FALSE)
{
$data = new FX($serverIP, $webCompanionPort, $dataSourceType, $scheme);
$data->SetDBData($databaseFileName,'fxphp_data');
$data->SetDBUserPass($webUN,$webPW);
$data->SetCharacterEncoding('utf8');
$data->SetDataParamsEncoding('utf8');
$data->AddDBParam('fd_field_1', $csv[0]);
$data->AddDBParam('fd_field_2', $csv[1]);
$data->AddDBParam('fd_field_3', $csv[2]);
$data->AddDBParam('fd_field_4', $csv[3]);
$data->AddDBParam('fd_field_5', $csv[4]);
$data->AddDBParam('fd_field_6', $csv[5]);
$data->AddDBParam('fd_field_7', $csv[6]);
$data->AddDBParam('fd_field_8', $csv[7]);
$data->AddDBParam('fd_field_9', $csv[8]);
$dataSet = $data->FMNew();
if ('0' !== (string)$dataSet['errorCode'])
{
$count['error']++;
}
else
{
$count['ok']++;
}
echo '.';
}
fclose($handle);
echo '<p>';
echo 'ã€ã³ããŒãåŠçãçµäºããŸãããæå: ' . number_format($count['ok']) . 'ã倱æ: ' . number_format($count['error']);
echo '</p>';
}
else
{
echo 'ãã¡ã€ã«ã' . h($dataSet['data'][key($dataSet['data'])]['fc_fileName'][0]) . 'ããèŠã€ãããŸããã';
}
?>
ãã¡ã€ã«ã¢ããããŒãã®ããžãã¯èªäœã¯ãæ¬é£èŒã®ç¬¬12åããªããžã§ã¯ããã£ãŒã«ãããè±åŽ! ããããããã©ãŒãã³ã¹ãåºãå®è£ ãšã¯ãã§ç޹ä»ãããã®ã䜿çšããŠãããã¢ããããŒãããããã¡ã€ã«åã¯ãã£ããFileMakerã®ããŒãã«ã§ç®¡çãããã¡ã€ã«äžèЧã§ã¬ã³ãŒãããªã¹ã衚瀺ããã
|
|
ãã¡ã€ã«äžèЧç»é¢ããŸã ãªã«ããã¡ã€ã«ãã¢ããããŒãããŠããªãã®ã§ãäžèЧã«ã¯ãªã«ã衚瀺ãããªã |
CSVãã¡ã€ã«ãã¢ãããããCSVãã¡ã€ã«ã¯ãæ¥æ¬éµäŸ¿ã®ãéµäŸ¿çªå·ããŒã¿ããŠã³ããŒããã«ãŠå ¬éãããŠããããŒã¿ãUTF-8ã«ãšã³ã³ãŒããããã®ã䜿çšãã |
äžèЧç»é¢ã®å·Šåã«è¡šç€ºãããã€ã³ããŒãããªã³ã¯ãã¯ãªãã¯ããŠã€ã³ããŒãåŠçããããªãããã
|
|
ã€ã³ããŒããã¿ã³ãã¯ãªãã¯åŸã®ç»é¢ãPHPã§ã€ã³ããŒãåŠç(ã«ãŒãã§-new)ããããªãããŠããéãFileMakeråŽã«ã¬ã³ãŒããæ¬¡ã ãšç»é²ãããŠãã |
|
ãã®ææ³ã ãšãã¡ã€ã«ãã¢ããããŒãããŠãããŠãŒã¶ãä»»æã®ã¿ã€ãã³ã°ã§ã€ã³ããŒãåŠçã宿œã§ãããããã¡ã€ã«ã¢ããããŒãããŠããããã€ã³ããŒããããããšããèŠæã«ãå¿ãããããããã®æ¹æ³ã¯ããŒã¿ã®ç»é²ãåæ°åç¹°ãè¿ããŠããã ããªã®ã§åŠçå®äºãŸã§ã«æéããããããããå®éã«äœ¿çšããå Žåã¯ãåŠçäžã®ã¿ã€ã ã¢ãŠããWebãã©ãŠã¶ãéããŠãããããã«ãPHPã®system()ãexec()ãæŽ»çšãããã
FileMaker Serverã®ã¹ã±ãžã¥ãŒã«ã§ãã¬ã³ãŒãã®ã€ã³ããŒããã¹ã¯ãªãããå®è¡ããæ¹æ³
ç¶ããŠãFileMaker Serverã®ã¹ã±ãžã¥ãŒã«æ©èœã䜿ã£ãŠãã¹ã¯ãªãããå®è¡ããããå©çšãããå®æã«æå®ã®ããŒãã«ã«ä¿åããããã¡ã€ã«ãååŸããã¬ã³ãŒãã®ã€ã³ããŒããã¹ã¯ãªããã¹ããããå®è¡ããæ¹æ³ã ã
|
FileMakerã¹ã±ãžã¥ãŒã«äŸããµã³ãã«çšã«3忝ãšçãééã ããå®éçšã§ã¯åŠçæéãèããŠå€ãã«ãšã£ãŠãããã»ããè¯ãã ãã |
(1)ã®å®è£ ã«äœ¿çšãããfxphp_csvãããŒãã«ã«ãã€ã³ããŒããããCSVæ å ±ãæ ŒçŽãããŠãããWebã¢ããªã±ãŒã·ã§ã³åŽã§ã¯ãã¡ã€ã«ãã¢ããããŒãããã ãã§ãããšã¯FileMaker Serverã¹ã±ãžã¥ãŒã«ãã¹ã¯ãªãããèµ·åããåæã«CSVãã€ã³ããŒãããŠãããã
FileMakerãã«ãã€ã³ã®æ©èœã䜿çšããåãåŠçæéã¯(1)æ¡ããçæéã§æžãããã¡ãããµãŒããŒå ¬éã«å¯Ÿå¿ããã¹ã¯ãªããã¹ããããªãã¬ã³ãŒãã®ã€ã³ããŒã以å€ãåäœãããããè€éãªåŠçã§ãå®è£ ããããã峿æ§ãæ±ããããªãã€ã³ããŒãã®å Žåã¯ããã®å®è£ æ¹æ³ã確å®ã ã
ã¡ãªã¿ã«FileMaker Serverã®ã¹ã±ãžã¥ãŒã«ã¯fmsadminã³ãã³ãã§å®è¡ã§ãããã€ã³ããŒãåŠçäžã®æä»åŠçãå®çŸã§ããã°ã(1)ãš(2)ã®ãããšããåããªå®è£ ãšãªããWebãµãŒããšFileMaker Serverãåäžãã·ã³ã«ã€ã³ã¹ããŒã«ãããŠããå Žåã¯ããã²ãã£ã¬ã³ãžããŠã¿ãŠã»ããã
CSVã€ã³ããŒããŸãšã - å Žé¢ã«ãã£ãå®è£ ã
ä»å玹ä»ãã2æ¡ã®å®è£ æ¹æ³ã¯ããããã«ã¡ãªãããã¡ãªããããããäžæŠã«ã©ã¡ããåªããŠãããããšã¯èšããªããåå玹ä»ããã¡ãªãããã¡ãªããã亀ãã€ã€ãããäžåãŸãšããŠã¿ããã
(1)æ¡ã®ã¡ãªãã
- ä»»æã®ã¿ã€ãã³ã°ã§ã€ã³ããŒãåŠçãå®è¡ã§ãã
- ã€ã³ããŒãåã«CSVããŒã¿ãPHPåŽã§å å·¥ã§ãã
(1)æ¡ã®ãã¡ãªãã
- åŠçå®äºãŸã§ã«æéãããããFileMaker Serverã«ãããè² è·ã倧ãã
(2)æ¡ã®ã¡ãªãã
- FileMakerãã«ãã€ã³ã®æ©èœã䜿çšãããããåŠçã(1)ãšæ¯èŒãããšéåžžã«é«é
- ã€ã³ããŒãååŸã«CSVããŒã¿ãFileMakerã®æ©èœå ã§å å·¥ã§ãã
(2)æ¡ã®ãã¡ãªãã
- FileMaker Server 10ãã€ãã¹ã±ãžã¥ãŒã«ãèšå®ã»å®è¡å¯èœãªç°å¢éå®
- FileMakerã®ã¹ã¯ãªããåŒæ°ã«ãWebã¢ããªããã®å ¥åå€ãæž¡ããªã
- åå¥ã«ãã¡ã€ã«ã®ã€ã³ããŒããå®è¡ã§ããªããè€éãªæš©éæ§æã®ã·ã¹ãã ã§ã¯äžåã
(1)æ¡ã§å®è£ ããæ¹ãè¯ãäºäŸ
- ã€ã³ããŒãåŠçã«å³ææ§ãèŠæ±ããã
- ãã€ããCSVãã¡ã€ã«ã®ãµã€ãºãå°ãã
- ç¹æ®ãªCSV圢åŒã®å Žå(1è¡â 1ã¬ã³ãŒããªã©)
- Webããã®å ¥åå€ãããšã«ã€ã³ããŒãåäœãåãæ¿ããã
(2)æ¡ã§å®è£ ããæ¹ãè¯ãäºäŸ
- ã€ã³ããŒãåŠçã®ã¿ã€ãã³ã°ãã¹ã±ãžã¥ãŒã«ã§ã®å®æå®è¡ã§ãè¯ã
- ãã€ããCSVãã¡ã€ã«ã®ãµã€ãºã倧ãã
- CSVãã¡ã€ã«åœ¢åŒã®äºåãã§ãã¯ãäžèŠ
- ã€ã³ããŒã以å€ã«FileMakeråŽã§ã®åŠçãå¿ èŠ
ãããã®å®è£ æ¹æ³ã¯é©æé©æã ããŸãã¯èªåã§è©ŠããŠã¿ãŠãèªåã®ããããäºãã«ãããããŠãããã確èªããŠããå®è£ ããŠã¿ããã