php explode
Ja, die kan je converteren naar eigen formaat.
kom steeds wat verder...
hij zet ze nu netjes in de database, controleert of hij al bestaat enz...
alleen.....
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
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $item->description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
$test = preg_match('/^(.*) Set USB (.*) Time: (.*) Engine (.*)$/', $item->description, $match ) ;
// alleen om te testen
echo '<pre>' . print_r( $test, TRUE ) . '</pre>';
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
$test1 = $match[1];
$test2 = $match[2];
$test3 = $match[3];
$test4 = $match[4];
echo '<p>' .
$test1 . '<br >' .
$test2 . '<br />' .
$test3 . '<br />' .
$test4 .
'</p>';
?>
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $item->description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
$test = preg_match('/^(.*) Set USB (.*) Time: (.*) Engine (.*)$/', $item->description, $match ) ;
// alleen om te testen
echo '<pre>' . print_r( $test, TRUE ) . '</pre>';
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
$test1 = $match[1];
$test2 = $match[2];
$test3 = $match[3];
$test4 = $match[4];
echo '<p>' .
$test1 . '<br >' .
$test2 . '<br />' .
$test3 . '<br />' .
$test4 .
'</p>';
?>
dat stukje code lijkt hij niet uit te voeren..
hij staat wel in het stukje waar code wordt uitgevoerd dus dat is het probleem niet..
Toevoeging op 02/11/2020 12:39:55:
output echo $item->description;
Engine Stopped
Set USB ID: 6B230001F9
Time: 02-11-2020 12:21:11 CET
Engine Hours: 11162:11:34
Gewijzigd op 02/11/2020 12:44:45 door Michael vanDijk
Dan dit ;
Code (php)
1
2
3
2
3
<?php
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>
Adoptive Solution op 02/11/2020 13:27:14:
Doe eerst dit ;
Dan dit ;
Dan dit ;
Code (php)
1
2
3
2
3
<?php
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>
dan krijg ik dit als output :
Code (php)
1
Fuel Remaining 49% Set USB ID: 6F22683C19 Time: 03-11-2020 02:19:40 CET Engine Hours: 3152:15:00
maarblijven de variabelen alsnog leeg. $match en $test doen niks
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
// eerdere info
$xml = '<?xml version="1.0" encoding="utf-8"?>
<product>
<description>
Engine Stopped
Set USB ID: 6B230001F9
Time: 02-11-2020 12:21:11 CET
Engine Hours: 11162:11:34</description>
</product>';
// nieuwe info
$xml = '<?xml version="1.0" encoding="utf-8"?>
<product>
<description>Fuel Remaining 49%
Set USB ID: 6F22683C19
Time: 03-11-2020 02:19:40 CET
Engine Hours: 3152:15:00
</description>
</product>';
$item = simplexml_load_string( $xml );
echo '<pre>' . print_r( $item, TRUE ) . '</pre>';
$description = str_replace(array("\n", "\r"), ' ', $item->description);
echo $description . '<br /><br />';
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
?>
<hr />
<?php
$test = preg_match('/^(.*) Set USB (.*) Time: (.*) Engine (.*)$/', $description, $match ) ;
// alleen om te testen
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
$test1 = $match[1];
$test2 = $match[2];
$test3 = $match[3];
$test4 = $match[4];
echo '<p>' .
$test1 . '<br >' .
$test2 . '<br />' .
$test3 . '<br />' .
$test4 .
'</p>';
?>
// eerdere info
$xml = '<?xml version="1.0" encoding="utf-8"?>
<product>
<description>
Engine Stopped
Set USB ID: 6B230001F9
Time: 02-11-2020 12:21:11 CET
Engine Hours: 11162:11:34</description>
</product>';
// nieuwe info
$xml = '<?xml version="1.0" encoding="utf-8"?>
<product>
<description>Fuel Remaining 49%
Set USB ID: 6F22683C19
Time: 03-11-2020 02:19:40 CET
Engine Hours: 3152:15:00
</description>
</product>';
$item = simplexml_load_string( $xml );
echo '<pre>' . print_r( $item, TRUE ) . '</pre>';
$description = str_replace(array("\n", "\r"), ' ', $item->description);
echo $description . '<br /><br />';
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
?>
<hr />
<?php
$test = preg_match('/^(.*) Set USB (.*) Time: (.*) Engine (.*)$/', $description, $match ) ;
// alleen om te testen
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
$test1 = $match[1];
$test2 = $match[2];
$test3 = $match[3];
$test4 = $match[4];
echo '<p>' .
$test1 . '<br >' .
$test2 . '<br />' .
$test3 . '<br />' .
$test4 .
'</p>';
?>
Toevoeging op 03/11/2020 09:20:21:
En doe dit eens im de werkelijk inhoud van de opgehaalde data te tonen.
Code (php)
1
2
3
2
3
$url = 'https://www.site.com/user_rss_feed.php';
$content = file_get_contents( $url );
echo '<pre>' . print_r( htmlentities( $content ), TRUE ) . '</pre>';
$content = file_get_contents( $url );
echo '<pre>' . print_r( htmlentities( $content ), TRUE ) . '</pre>';
En dump hier dan de description.
Want nu blijft het gissen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$description = "Fuel Remaining 49% Set USB ID: 6F22683C19 Time: 03-11-2020 02:19:40 CET Engine Hours: 3152:15:00 ";
$description = str_replace(array("\n", "\r"), ' ', $description);
$description = html_entity_decode($description);
$description = preg_replace('/(( )+|(\\n)+)/', '$2$3',$description);
//echo $description;
// preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $item->description, $match );
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
?>
$description = "Fuel Remaining 49% Set USB ID: 6F22683C19 Time: 03-11-2020 02:19:40 CET Engine Hours: 3152:15:00 ";
$description = str_replace(array("\n", "\r"), ' ', $description);
$description = html_entity_decode($description);
$description = preg_replace('/(( )+|(\\n)+)/', '$2$3',$description);
//echo $description;
// preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $item->description, $match );
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
?>
Toevoeging op 03/11/2020 09:36:39:
echo '<pre>' . print_r( htmlentities( $data ), TRUE ) . '</pre>';
output
Battery Voltage Set USB ID: 6B230001F9 Time: 03-11-2020 06:34:38 CET Engine Hours: 11168:38:54
https://3v4l.org/ vind ik lekkerder werken. Die kent ook een hele berg aan PHP-versies, en geeft ook de verschillen in de output aan.
De sandbox van Gewijzigd op 03/11/2020 09:41:53 door - Ariën -
En bij w3school ook. Plak daar de complete code die je zojuist hier hebt geplempt.
https://www.w3schools.com/php/phptryit.asp?filename=tryphp_func_regex_preg_match
- Ariën - op 03/11/2020 09:38:11:
De sandbox van https://3v4l.org/ vind ik lekkerder werken. Die kent ook een hele berg aan PHP-versies.
ook daar krijg ik geen goed resultaat
Toevoeging op 03/11/2020 09:48:24:
Nu snap ik er helemaal niks meer van ;-)
code werkt inderdaad nu op w3schools maar als ik dit doe
krijg ik weer lege array's
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$description = str_replace(array("\n", "\r"), ' ', $item->description);
$description = html_entity_decode($description);
$description = preg_replace('/(( )+|(\\n)+)/', '$2$3',$description);
//echo $description;
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
preg_match('/^(.*) : (.*) - (.*) $/', $item->title, $match2 );
echo '<pre>2e match' . print_r( $match2, TRUE ) . '</pre>';
foreach ( $match2 as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}[/code]
$description = str_replace(array("\n", "\r"), ' ', $item->description);
$description = html_entity_decode($description);
$description = preg_replace('/(( )+|(\\n)+)/', '$2$3',$description);
//echo $description;
if( preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match ) )
{
echo '<pre>' . print_r( $match, TRUE ) . '</pre>';
}
foreach ( $match as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}
preg_match('/^(.*) : (.*) - (.*) $/', $item->title, $match2 );
echo '<pre>2e match' . print_r( $match2, TRUE ) . '</pre>';
foreach ( $match2 as $key => $value )
{
echo $key . ' = ' . $value . '<br />';
}[/code]
Gewijzigd op 03/11/2020 09:52:07 door Michael vanDijk
Gewijzigd op 03/11/2020 10:05:28 door Adoptive Solution
RegExr.com.
Plak je description in het onderste venster en je regex in de bovenste balk. Dan kun je realtime de resultaten zien, inclusief cheatsheet en tips, wel even goed op de flags letten.
Dergelijke tools hebben mij in het verleden enorm geholpen om die expressies te doorgronden.
Wat misschien makkelijker werkt om je RegEx te debuggen is een tool zoals Plak je description in het onderste venster en je regex in de bovenste balk. Dan kun je realtime de resultaten zien, inclusief cheatsheet en tips, wel even goed op de flags letten.
Dergelijke tools hebben mij in het verleden enorm geholpen om die expressies te doorgronden.
https://regexper.com/ een uitkomst. Die toont de expressie in een visueel diagram. :-)
Als je reguliere expressies wilt leren, lezen, dan is Adoptive Solution op 03/11/2020 10:05:12:
Dat komt omdat $item->description niet bestaat.
in mijn feed bestaat die natuurlijk wel. en krijg ik ook gewoon als output die tekst zonder spaties daarom begrijp ik het ook niet...
als ik hem in aan variable hang dan werkt het maar als ik hem uit de feed haal (ondanks dat de echo het doet) werkt het niet
Toevoeging op 03/11/2020 11:22:02:
heeft even paar uurtjes gekost maar eindelijk voor elkaar
$description = preg_replace('/\s+/', ' ', $description);
dit was het tovermiddel
Puur magie.
Adoptive Solution op 03/11/2020 11:47:50:
Puur magie.
denk eerder mijn onkunde, ben pas weer begonnen met scripten en alles is best wel veranderd.
maar goed trial and error
wel iedereen super bedankt!!!