0

下面你可以看到我的表单页面,在这个页面你上传一个 xml 文件。

<html>
<body>

<form enctype="multipart/form-data" action="arrayincludefiletest.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<table width="600">
<tr>
<td>File name:</td>
<td><input type="file" name="file" /></td>
<td><input type="submit" value="Upload" /></td>
</tr>
</table>
</form>

</body>
</html>

下面你可以看到我的 PHP 代码,如果你看一下你会发现现在一切都是手动的。我必须自己填充数组。您还可以看到我将数组插入到我的数据库中。我想上传一个 xml 文件,并将 xml 文件的值自动放入我的数组中。

<html>
<head>
<title> Bom Array </title>
</head>
<body>

<?php

$bom= array(
        array("Aantal" =>1, "Manufactorer" =>"Panasonic", "Partno" =>"EEEFC1H1R0R", 
                "Description" =>"Capacitor 0603","Footprint" =>"CAP0603", "Refdes" =>"B1"),
        array("Aantal" =>2, "Manufactorer" =>"Vishay", "Partno" =>"MAL215371228E3", 
                "Description" =>"Capacitor 1210","Footprint" =>"CAP1210", "Refdes" =>"C6,C7"),
        array("Aantal" =>3, "Manufactorer" =>"Ferroxcube", "Partno" =>"MAL215371109E3", 
                "Description" =>"Buzzer 80dB 3,4 KHz","Footprint" =>"KPEG238", "Refdes" =>"C8,C25"),
        array("Aantal" =>4, "Manufactorer" =>"Philips", "Partno" =>"EEEFC1E101P", 
                "Description" =>"Tantaal 100uF, 6,3V Case_B","Footprint" =>"Case_B", "Refdes" =>"C1")
);

echo "<table border='1'>";
echo "<tr>
        <th>Aantal</th>
        <th>Manufactorer</th>
        <th>Partno</th>
        <th>Description</th>
        <th>Footprint</th>
        <th>Refdes</th>
     </tr>";

echo "<tr>
        <td>" . $bom[0]['Aantal'] . "</td>
        <td>" . $bom[0]['Manufactorer'] . "</td>
        <td>" . $bom[0]['Partno'] . "</td>
        <td>" . $bom[0]['Description'] . "</td>
        <td>" . $bom[0]['Footprint'] . "</td>
        <td>" . $bom[0]['Refdes'] . "</td>
      </tr>";

echo "<tr>
        <td>" . $bom[1]['Aantal'] . "</td>
        <td>" . $bom[1]['Manufactorer'] . "</td>
        <td>" . $bom[1]['Partno'] . "</td>
        <td>" . $bom[1]['Description'] . "</td>
        <td>" . $bom[1]['Footprint'] . "</td>
        <td>" . $bom[1]['Refdes'] . "</td>
      </tr>";

echo "<tr>
        <td>" . $bom[2]['Aantal'] . "</td>
        <td>" . $bom[2]['Manufactorer'] . "</td>
        <td>" . $bom[2]['Partno'] . "</td>
        <td>" . $bom[2]['Description'] . "</td>
        <td>" . $bom[2]['Footprint'] . "</td>
        <td>" . $bom[2]['Refdes'] . "</td>
      </tr>";

echo "<tr>
        <td>" . $bom[3]['Aantal'] . "</td>
        <td>" . $bom[3]['Manufactorer'] . "</td>
        <td>" . $bom[3]['Partno'] . "</td>
        <td>" . $bom[3]['Description'] . "</td>
        <td>" . $bom[3]['Footprint'] . "</td>
        <td>" . $bom[3]['Refdes'] . "</td>
      </tr>";
echo "</table>";

// Connectie database and Insert into database
$con = mysqli_connect("localhost", "csa", "csa", "csa");

// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL:" . mysqli_connect_error();
}

if(is_array($bom))
{
    $sql= "INSERT INTO bom (Aantal, Manufactorer, Partno, Description, Footprint, Refdes) values";

    $valuesArr = array();
    foreach ($bom as $row)
    {   
        $aantal = (int) $row['Aantal'];
        $manufactorer = mysqli_real_escape_string($con, $row['Manufactorer']);
        $partno = mysqli_real_escape_string($con, $row['Partno']);
        $description = mysqli_real_escape_string($con, $row['Description']);
        $footprint = mysqli_real_escape_string($con, $row['Footprint']);
        $refdes = mysqli_real_escape_string($con, $row['Refdes']);

        $valuesArr[] = "('$aantal', '$manufactorer', '$partno', '$description', '$footprint', '$refdes')";
    }

    $sql .= implode(',', $valuesArr);
    mysqli_query($con, $sql) or die('Error:' . mysqli_errno($con));

}

mysqli_close($con);

?>

</body>
</html>
4

1 回答 1

0

xml_parse_into_struct()为此使用功能。

$xmlfile = 'test.xml';
$xmlparser = xml_parser_create();

$fp = fopen($xmlfile, 'r');
$xmldata = fread($fp, 4096);

xml_parse_into_struct($xmlparser,$xmldata,$values);

xml_parser_free($xmlparser);
print_r($values);
于 2013-10-01T10:21:41.943 回答