我正在尝试使用我的php脚本上传csv文件,但似乎只有第一行被发送到服务器。我尝试了几种解决方案作为放置q循环,但都while(! feof($handle)){ $data=fgetcsv($handle, 1000, ","); ...}
,但它崩溃了。
如果其他人可以帮助我。谢谢。
这是我的 php 脚本:
<?php
$URL = 'https://mutalyzer.nl/services/?wsdl';
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mutalyzer SOAP client</title>
</head>
<body>
<h1>Mutalyzer SOAP client</h1>
<?php
if (isset($_GET['data']) && $_GET['data']) {
echo $_GET['data'];
$variant = $_GET['data'];
echo $variant;
//$filename = basename($_FILES['data']['name']);
$_FILES['data']['name']=$_GET['data'];
$filename = basename( $_FILES['data']['name']);
$handle = fopen($filename, "r");
$data = fgetcsv($handle, 1000, ",");
/*while(! feof($handle)){
$data = fgetcsv($handle, 1000, ",");
//print_r($data);
}*/
//$encripData = base64_encode($variant);
$NameChecker=$_GET['process'];
echo '<h2>Result for '.htmlentities($variant).'</h2>';
$options = array('features' => SOAP_SINGLE_ELEMENT_ARRAYS);
$client = new SoapClient($URL, $options);
//while(! feof($handle)){
//$data=fgetcsv($handle, 1000, ",");
$result = $client->submitBatchJob(array('data' => $data[0], 'process' =>$NameChecker))
->submitBatchJobResult;
//print_r(array('data' => $data, 'process' =>$NameChecker));
//}
print_r($result);
}
?>
<h2>Submit job data file to MUTALYZER</h2>
<form action="" method="GET" enctype="multipart/form-data">
<p>
Input file:
</p>
<input name="data" type="file" id="data" />
<br/>
Process :
<input type="text" size="10" name="process" id="process" value="NameChecker"/>
<br/>
<input type="submit" name="upload" value="Submit" />
</form>
</body>
</html>
尝试这样做,下面的代码有效。
<?php
// sample_file.csv file contains 35 rows.
$row = 1;
$csv_array = array();
if (($handle = fopen("C:'Users'develop2'Downloads'sample_file.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$csv_array[] = $data;
}
fclose($handle);
}
// here u can get the data in csv as an array with fulll rows..
print_r($csv_array);
?>
我修改了源代码。我唯一的问题是服务器只得到数组的最后一行。我正在做一些不好的事情,但我不知道。这是我的新源代码:
<?php
$URL = 'https://mutalyzer.nl/services/?wsdl';
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mutalyzer SOAP client</title>
</head>
<body>
<h1>Mutalyzer SOAP client</h1>
<?php
if (isset($_GET['data']) && $_GET['data']) {
$variant = $_GET['data'];
$_FILES['data']['name']=$_GET['data'];
$filename = basename( $_FILES['data']['name']);
$handle = fopen($filename, "r");
//$data = fgetcsv($handle, 1000, ",");
$NameChecker=$_GET['process'];
echo '<h2>Result for '.htmlentities($variant).'</h2>';
$options = array('features' => SOAP_SINGLE_ELEMENT_ARRAYS);
$client = new SoapClient($URL, $options);
$data=array();
while(! feof($handle)){
$data = fgetcsv($handle, 1000);
$result = $client->submitBatchJob(array('data' => $data[0], 'process' =>$NameChecker))
->submitBatchJobResult;
print_r(array('data' => $data, 'process' =>$NameChecker));
}
print_r($result);
}
?>
<h2>Submit job data file to MUTALYZER</h2>
<form action="" method="GET" enctype="multipart/form-data">
<p>
Input file:
</p>
<input name="data" type="file" id="data" />
<br/>
Process :
<input type="text" size="10" name="process" id="process" value="NameChecker"/>
<br/>
<input type="submit" name="upload" value="Submit" />
</form>
</body>
</html>