xml into array en dan naar database
ik heb onderstaande code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$xml = simplexml_load_file('test.xml');
$arr = array();
foreach($xml->point as $val) {
$rMonitoring[] = array(
'stplnr' => (int)$val->stplnr,
'errornr' => (int)$val->errornr,
'cyclusnr' => (int)$val->cyclusnr,
'pointnr' => (string)$val->pointnr,
'date' => (string)$val->date,
'time' => (string)$val->time,
'posX' => (float)$val->posX,
'posY' => (float)$val->posY,
'posZ' => (float)$val->posZ,
'stplX' => (float)$val->stplX,
'stplY' => (float)$val->stplY,
'stplZ' => (float)$val->stplZ
);
}
var_dump($rMonitoring);
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$xml = simplexml_load_file('test.xml');
$arr = array();
foreach($xml->point as $val) {
$rMonitoring[] = array(
'stplnr' => (int)$val->stplnr,
'errornr' => (int)$val->errornr,
'cyclusnr' => (int)$val->cyclusnr,
'pointnr' => (string)$val->pointnr,
'date' => (string)$val->date,
'time' => (string)$val->time,
'posX' => (float)$val->posX,
'posY' => (float)$val->posY,
'posZ' => (float)$val->posZ,
'stplX' => (float)$val->stplX,
'stplY' => (float)$val->stplY,
'stplZ' => (float)$val->stplZ
);
}
var_dump($rMonitoring);
?>
En dat geeft deze oa output :
array (size=7)
0 =>
array (size=12)
'stplnr' => int 1
'errornr' => int 0
'cyclusnr' => int 1
'pointnr' => string 'CNT101' (length=6)
'date' => string '28-12-2013' (length=10)
'time' => string '12:00:43' (length=8)
'posX' => float 2.445
'posY' => float 3.2375
'posZ' => float 5.45
'stplX' => float 0.125
'stplY' => float 1.5
'stplZ' => float 2.5
1 =>
array (size=12)
'stplnr' => int 1
'errornr' => int 0
'cyclusnr' => int 1
'pointnr' => string 'CNT102' (length=6)
'date' => string '28-12-2013' (length=10)
'time' => string '12:02:43' (length=8)
'posX' => float 2.445
'posY' => float 3.2375
'posZ' => float 5.45
'stplX' => float 0.125
'stplY' => float 1.5
'stplZ' => float 2.5
Mijn vraag is hoe kan ik dit nu netjes in een tabel gesorteerd weergeven en daarna die values die die ingelezen heeft uit de xml door middel van een knop naar mijn database toe sturen.
En mijn 2e vraag die zal hier niet echt thuis horen denk ik...
Maar kan php elke keer de allernieuwste .XML file van een bepaalde locatie op me pc inlezen zoals hierboven en de database updaten met de nieuwe gevonden data??
Tips zijn enorm welkom
Groet
Rick Entonces op 26/12/2013 12:14:52:
Mijn vraag is hoe kan ik dit nu netjes in een tabel gesorteerd weergeven en daarna die values die die ingelezen heeft uit de xml door middel van een knop naar mijn database toe sturen.
Zullen we het bovenstaande eerst eens omdraaien? Laten we eerst de gegevens die uit de xml komen wegschrijven in een goed ingerichte database tabel. Waarom? Omdat je daarna dan zo lekker eenvoudig kunt sorteren onder andere.
Rick Entonces op 26/12/2013 12:14:52:
En mijn 2e vraag die zal hier niet echt thuis horen denk ik...
Maar kan php elke keer de allernieuwste .XML file van een bepaalde locatie op me pc inlezen zoals hierboven en de database updaten met de nieuwe gevonden data??
Maar kan php elke keer de allernieuwste .XML file van een bepaalde locatie op me pc inlezen zoals hierboven en de database updaten met de nieuwe gevonden data??
Ja dat kan. ik ga er even vanuit dat de webserver en 'me pc' dezelfde machine is? dan kun je de php functie file_get_contents() gebruiken om het hele bestand in één keer in te lezen.
Gewijzigd op 26/12/2013 13:38:07 door Frank Nietbelangrijk
bedankt voor je bericht, om terug te komen op het eerste gedeelte,
de uitgelezen data van de xml wil ik eerst gecontroleerd hebben voordat het naar de database gestuurd wordt.
De opzet is :
gebruiker klikt op bladeren, zoekt in de directory het eerst xml bestand bijv 20131227-1.xml en selecteert deze en leest hem in. Die gegevens wil ik dan zien en na controle de database ermee vullen.
vervolgens moet php en sql dan zelf die directory in de gaten houden en zodra er een 2e cyclus gemeten is en dus een 2e xml file zich bevind hem automatisch inlezen en direct naar de database sturen,
elke 10 minuten volgt er een nieuwe cyclus.
verdere stappen zijn dan dat de gebruiker live kan zien na elke cyclus wat er met een bepaald punt gebeurd in grafiek ofzo....
meer tips zijn cker welkom?
groet
Maar alleen als je php script en de xml bestanden op dezelfde fysieke machine staan kan php autonoom die bestanden inlezen. Als je xml bestanden op je pc staan en php op een server draait is dat onmogelijk.
thnx voor de tips! term flag zeg me even niks maar snap je punt met het in een andere tabel te plaatsen.
PHP en xml files is allemaal op de zelfde machine ja.
Stel dat je dit van een afstand wil gaan doen, wat zijn daar de mogelijkheden voor dan.
volstrekt onmogelijk of andere talen etc????
Flag is gewoon een kolom waarin je de status van het record aangeeft. Bijvoorbeeld een integer waarbij 1 staat voor actief en 0 staat voor inactief oid.
maar elke keer komt deze terug met : kies het juiste bestand.
enig idee waar dit nu op fout gaat?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
error_reporting(E_ALL | E_STRICT);
// Check if extention is correct for uploading file.
# Array met toegestane types
$type = array('.xml',);
# Array met toegestane mime types
$mime = array('text/xml',);
# Extensie van het bestand
$extensie = $_FILES['file'];
# Kijken of het bestand is toegestaan
if(!in_array($extensie, $type)) {
# Geen valid bestand
echo 'Kies A.U.B een correcte file.';
} else {
# Kijken of het een valid mime type is
if(!in_array($_FILES['file']['type'], $mime)) {
# Mime type is niet valid.
echo 'Dit is geen valid file.';
} else {
// Ga verder met het inlezen van het bestand
echo 'u heeft het juiste bestand geselecteerd';
}
}
?>
error_reporting(E_ALL | E_STRICT);
// Check if extention is correct for uploading file.
# Array met toegestane types
$type = array('.xml',);
# Array met toegestane mime types
$mime = array('text/xml',);
# Extensie van het bestand
$extensie = $_FILES['file'];
# Kijken of het bestand is toegestaan
if(!in_array($extensie, $type)) {
# Geen valid bestand
echo 'Kies A.U.B een correcte file.';
} else {
# Kijken of het een valid mime type is
if(!in_array($_FILES['file']['type'], $mime)) {
# Mime type is niet valid.
echo 'Dit is geen valid file.';
} else {
// Ga verder met het inlezen van het bestand
echo 'u heeft het juiste bestand geselecteerd';
}
}
?>