Я хотел бы знать, как я могу передать содержимое файла (в моем случае csv) в качестве аргумента для исполняемого файла командной строки (в C или Objective C), который будет вызываться exec в php.
Вот что я сделал: пользователь загружает содержимое своего файла с URL-адреса следующим образом:
http://www.myserver.com/model.php?fileName=test.csv
Тогда следующий код позволяет php анализировать и загружать файл csv:
<?php
$f = $_GET['fileName'];
$handle = fopen("$f", "r");
$data = array();
while (($line = fgetcsv($handle)) !== FALSE) {
$data[] = $line;
}
?>
где я застрял - как передать содержимое этого csv-файла в качестве аргумента exec. Даже если я могу предположить, что csv, как известно, имеет только два столбца, количество строк зависит от пользователя, поэтому я не могу передать все значения одно за другим в качестве параметров, например
exec("/path_to_executable/model -a $data[0][0] -b $data[0][1] .....");
Единственное альтернативное решение, я думаю, было бы написать что-то вроде этого:
exec("/path_to_executable/model -fileName test.csv");
и чтобы исполняемый файл командной строки выполнял синтаксический анализ csv, но в этом случае, я думаю, мне нужно, чтобы файл csv был физически записан на стороне сервера. Мне интересно, что произойдет, если несколько человек одновременно получат доступ к веб-странице со своим собственным файлом csv, они перезаписывают друг друга?
Полагаю, для этого должен быть правильный способ, и я этого не понял. Любая идея? Спасибо!