[PHP] gedeeltes Html inhoud isoleren

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem :
Ik heb 20 <tr> </tr> tags met erin elk 8 <td> </td> Tags

Info :
Deze informatie heb ik verkregen na verwerking van een remote bestand.

Vraag :
Hoe kan ik nu om te beginnen elk <tr> </tr> los van elkaar maken om vervolgens later die inhoud ergens anders voor te gebruiken. Dus ik wil elke <tr>...</tr> apart van elkaar hebben.
Ik dacht aan het gebruik van een loop, maar aangezien ik niet weet hoe ik dat in deze situatie moet toepassen zit ik vast.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Regular expressions zijn hier erg geschikt voor :) zoek er eens op.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
en met wat moet ik die regeex dan gebruiken?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan ook prima splitten op "<tr></tr>" met de explode() functie.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt, toevallig dat ik dit net paar min geleden al had toegepast na veel moeite.

- edit : alleen nu is er een nieuwe probleem ontstaan, ik gebruik dus de explode() functie, met als separator <tr> , met als gevolg dat <tr> niet meer in de output voorkomt! ?

klopt dit?

[ Voor 55% gewijzigd door Verwijderd op 16-01-2005 01:04 ]


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Regular expressions is waarschijnlijk het beste hiervoor aangezien je nog meer moet doen met de waardes.
Voorbeeldje:
PHP:
1
preg_match_all('%<tr>(.+?)</tr>%s', $input, $output);

[ Voor 10% gewijzigd door Wolfboy op 16-01-2005 01:03 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 19:48

pistole

Frutter

iets met DOM lijkt me ook wel nuttig....

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wolfboy schreef op zondag 16 januari 2005 @ 01:02:
Regular expressions is waarschijnlijk het beste hiervoor aangezien je nog meer moet doen met de waardes.
Voorbeeldje:
PHP:
1
preg_match_all('%<tr>(.+?)</tr>%s', $input, $output);
Met jouw voorbeeld krijg ik het getal 24 terug, aangezien er 24 rijen zijn, en ik heb geen idee hoe ik de inhoud kan outputten dan.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
print_r () die $output variabele eens :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 16 januari 2005 @ 01:09:
Met jouw voorbeeld krijg ik het getal 24 terug, aangezien er 24 rijen zijn, en ik heb geen idee hoe ik de inhoud kan outputten dan.
PHP:
1
print_r($output);

edit:
/spuit11 :P

[ Voor 4% gewijzigd door NMe op 16-01-2005 01:18 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
zoals ik al zei "24" het getal 24 dus, en met echo() ook 24

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Het zal wel niet, maar probeer dit eens:
PHP:
1
preg_match_all('%<tr>(.+?)</tr>%uis', $input, $output);

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
zelfde resultaat :( het getal 24

edit: ik zie nu resultaat, maar alleen met print_r met echo geeft het alsnog niets.
het ziet er naar uit dat er nu een array in een array word gemaakt

dit is nu de output (print_r) :
Array(
[0] => Array (
[0] =>
[1]=>
etc
)
[1] = > array (
[0]=>
etc
)

[ Voor 103% gewijzigd door Verwijderd op 16-01-2005 01:39 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dat is normaal. Lees de documentatie van preg_match_all() maar eens door.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
aha, ik zie het. Maar nu heb ik het probleem dat met print_r laat hij 2 array's zien met dus 2x de zelfde waardes. Dus ergens moet nog een fout zitten denk ik aangezien ik de script zo minimaal mogelijk wil houden

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

preg_match_all geeft bij $output[0] alles terug wat hij gevonden heeft en bij $output[1] wat je tussen de eerste paar ( en ) hebt staan.
Het leek me makkelijker als je <tr> er niet bij kreeg dus heb ik ( en ) om de nuttige text gezet, zodra je die weghaalt dan zal je nog maar 1 array (multidimensionale) terugkrijgen

Blog [Stackoverflow] [LinkedIn]

Pagina: 1