php explode

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

02/11/2020 11:47:17
Quote Anchor link
Ja, die kan je converteren naar eigen formaat.
 
PHP hulp

PHP hulp

29/11/2024 10:44:34
 
Michael vanDijk

Michael vanDijk

02/11/2020 12:30:00
Quote Anchor link
Super bedankt allemaal,
kom steeds wat verder...

hij zet ze nu netjes in de database, controleert of hij al bestaat enz...

alleen.....
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
?>

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
 
Adoptive Solution

Adoptive Solution

02/11/2020 13:27:14
Quote Anchor link
Doe eerst dit ;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$description
= str_replace(array("\n", "\r"), ' ', $item->description);
?>


Dan dit ;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>
 
Michael vanDijk

Michael vanDijk

03/11/2020 08:59:10
Quote Anchor link
Adoptive Solution op 02/11/2020 13:27:14:
Doe eerst dit ;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$description
= str_replace(array("\n", "\r"), ' ', $item->description);
?>


Dan dit ;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
preg_match('/^(.*) Set USB ID: (.*) Time: (.*) Engine Hours: (.*)$/', $description, $match )
?>


dan krijg ik dit als output :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
 
Adoptive Solution

Adoptive Solution

03/11/2020 09:15:52
Quote Anchor link
Wat ik ook die, het wil maar niet fout gaan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
?>


Toevoeging op 03/11/2020 09:20:21:

En doe dit eens im de werkelijk inhoud van de opgehaalde data te tonen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$url = 'https://www.site.com/user_rss_feed.php';
$content = file_get_contents( $url );
echo '<pre>' . print_r( htmlentities( $content ), TRUE ) . '</pre>';


En dump hier dan de description.

Want nu blijft het gissen.
 
Michael vanDijk

Michael vanDijk

03/11/2020 09:34:01
Quote Anchor link
zelfs als ik dit in de w3schools online try it doe werkt hij niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 />';
}

?>


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
 
- Ariën  -
Beheerder

- Ariën -

03/11/2020 09:38:11
Quote Anchor link
De sandbox van 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.
Gewijzigd op 03/11/2020 09:41:53 door - Ariën -
 
Adoptive Solution

Adoptive Solution

03/11/2020 09:40:24
Quote Anchor link
Bij mij werkt het.

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
 
Michael vanDijk

Michael vanDijk

03/11/2020 09:41:22
Quote Anchor link
- 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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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]
Gewijzigd op 03/11/2020 09:52:07 door Michael vanDijk
 
Adoptive Solution

Adoptive Solution

03/11/2020 10:05:12
Quote Anchor link
Dat komt omdat $item->description niet bestaat.
Gewijzigd op 03/11/2020 10:05:28 door Adoptive Solution
 
Thom nvt

Thom nvt

03/11/2020 10:07:16
Quote Anchor link
Wat misschien makkelijker werkt om je RegEx te debuggen is een tool zoals 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.
 
- Ariën  -
Beheerder

- Ariën -

03/11/2020 10:12:14
Quote Anchor link
Als je reguliere expressies wilt leren, lezen, dan is https://regexper.com/ een uitkomst. Die toont de expressie in een visueel diagram. :-)
 
Michael vanDijk

Michael vanDijk

03/11/2020 10:15:21
Quote Anchor link
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
 
Adoptive Solution

Adoptive Solution

03/11/2020 11:47:50
Quote Anchor link
Puur magie.
 
Michael vanDijk

Michael vanDijk

03/11/2020 12:14:57
Quote Anchor link
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!!!
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.