[PHP] Twee tabellen op twee pagina's

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik hoop dat ik mijn probleem goed kan uitleggen;

Ik heb het volgende als pagina:
TABEL 1 | TABEL 2
Deze twee tabellen worden extern 'aangemaakt' en daar kan ik dus niets aan veranderen.
Nu wil ik tabel 1 op een pagina en de andere op een andere pagina.

Heeft iemand enig idee hoe ik deze twee tabellen kan splitsen?

Alvast heel erg bedankt :)

Acties:
  • 0 Henk 'm!

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
De uitleg van je probleem is vrij onduidelijk, probeer het eens duidelijker uit te leggen wat het probleem is, wat de huidige situatie is (gebruik daarbij een stukje code/screenshot/voorbeeld) en waar je naartoe wilt... nu kan niemand hier iets mee.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Zie Face_-_LeSS. Je probleemomschrijving is zo beperkt dat er helemaal niks zinnigs over te zeggen is. Probeer je probleem eens wat beter te omschrijven en neem daarbij dan ook de punten in de quickstart even mee.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ga het nogmaals proberen;

Ik heb op een website twee tabellen (de inhoud daarvan is niet relevant, het zijn gewoon twee HTML tabellen).
Deze twee tabellen worden extern aangeleverd via een website, ik kan dus niets veranderen aan deze twee tabellen op zich. Dit gebeurd overigens via een 'file_get_contents'. De tabel staat dan dus in een variabel.
Nu wil ik via PHP deze twee tabellen splitsen, zodat ik de ene tabel op pagina 1 en de andere op pagina 2 kan zetten.

Ik ben dus op zoek naar een manier om de twee tabellen in de variabel te splitsen.

Ik hoop dat het zo wat duidelijker is :)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dat scheelt een hoop. Nu is het duidelijk over wat voor tabellen je het hebt en op wat voor manier je ze binnenhaalt.

Met file_get_contents haal je de twee tabellen op. Je zou even moeten uitzoeken hoe je de overgang kunt vinden (waarschijnlijk iets van het tweede voorkomen van <table). Dan kun je met strpos() of stripos() deze plek vinden en vervolgens met substring de string in 2 delen knippen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Kan je de code van die tabellen hier laten zien en vertellen hoeveel er steeds verandert en wat er hetzelfde blijft aan deze tabellen, dat is namelijk belangrijk bij het kiezen van de beste algoritme om ze te splitsen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beide blokken (ik dacht overigens dat het twee afzonderlijke tabellen waren) begint als volgt:
code:
1
<tr><td><h1>Tabel 1</h2><div class="verder">...variabele inhoud...
.

En ze eindigen beide zo:
code:
1
2
3
      </div></td></tr></table>
    
    </div></td>


Ik hoop dat daarmee iets te doen is.

[ Voor 4% gewijzigd door Verwijderd op 12-01-2009 13:31 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik mis een <table>..

en euh, waarom staat alles in php tags?

Maar als het in 1 variabele staat, kun je het dan niet gewoon exploden met php op het </table> tag.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op maandag 12 januari 2009 @ 12:02:
ik mis een <table>..

en euh, waarom staat alles in php tags?

Maar als het in 1 variabele staat, kun je het dan niet gewoon exploden met php op het </table> tag.
Ik dacht ook dat het twee tabellen waren, maar dat had ik even verkeerd gezien.

De php tags zijn gefixt, foutje ;)

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Hoe kun je nu een tabel afsluiten die je niet begonnen bent? :S

Ik denk dat je toch echt even opzoek moet gaan naar de <table> tag.

Vervolgens zou ik verder gaan met de oplossing van Janoz.

Met strpos moet je dus zien uit te zoeken op welke positie binnen de string de eerste tabel start, waar die weer wordt afgesloten en hetzelfde voor de volgende tabel. Vervolgens kan je met substr de string in de gewenste brokken knippen voor elk van de tabellen.

Exploden op </table> lijkt me in dit geval minder mooi. Voor zover ik het heb begrepen wordt er een volledige html-source opgehaald met alle bijbehorende tags. Als je voor iedere tabel een string wilt, dan wil je waarschijnlijk niet dat daar bij de ene de header van de source in staat en bij de andere de afsluiting van het hele document. In zo'n geval is werken met strpos veel fijner dan explode.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
doeternietoe schreef op maandag 12 januari 2009 @ 13:56:
Hoe kun je nu een tabel afsluiten die je niet begonnen bent? :S
De tabel wordt begonnen buiten de inhoud in de variabel, vandaar :)

Substr gaat overigens niet lukken, aangezien het variabele content is.
Ik ga eens kijken of explode werkt. Was ik zelf nog niet opgekomen :)

[ Voor 22% gewijzigd door Verwijderd op 12-01-2009 14:07 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Hoe kom je er bij dat substring niet zou werken? Kun je dat ook uitleggen? Als het met explode zou lukken, dan lukt het zeker met een combinatie van strpos en substring zeker werken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is gelukt met explode :D

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Verwijderd schreef op maandag 12 januari 2009 @ 14:06:
[...]

De tabel wordt begonnen buiten de inhoud in de variabel, vandaar :)

Substr gaat overigens niet lukken, aangezien het variabele content is.
Substr moet je ook geen statische waardes geven, maar je moet iets doen met de output van strpos :)

Maargoed, als je tevreden bent met de explode oplossing, dan kan dat natuurlijk ook.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
doeternietoe schreef op maandag 12 januari 2009 @ 15:07:
[...]


Substr moet je ook geen statische waardes geven, maar je moet iets doen met de output van strpos :)

Maargoed, als je tevreden bent met de explode oplossing, dan kan dat natuurlijk ook.
Ik zag dat later ook inderdaad :)
Maar verder heeft explode geen nadelen toch als het werkt zo, lijkt mij?

Acties:
  • 0 Henk 'm!

  • swtimmer
  • Registratie: Augustus 2006
  • Laatst online: 19-09 21:50

swtimmer

Ontrafelt het leven!

Lijkt me een gevalletje voor http://nl2.php.net/split .

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Dat mag je uitleggen.

Waarom zou je de overhead van regular expressies gebruiken als explode al werkt? Je maakt meer problemen dan je er mee oplost.

@TS: Een mogelijk voordeel van substr is dat je een bepaald deel er gemakkelijk uit pakt, terwijl explode de string gewoon door midden hakt. Maar aangezien in jouw geval het begin van de table er niet eens in zit, zul je ook wel geen problemen hebben met andere irrelevante html open en sluittags. Zelf vind ik substr netter omdat dat precies voor dit soort problemen is gemaakt, explode zou ik eerder gebruiken bij dingen zoals CSV

Maar, don't fix things that ain't broken: Explode is een goede mogelijkheid en als je er tevreden mee bent zou ik het zo laten :)

[ Voor 7% gewijzigd door doeternietoe op 12-01-2009 16:03 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op maandag 12 januari 2009 @ 15:47:
[...]

Ik zag dat later ook inderdaad :)
Maar verder heeft explode geen nadelen toch als het werkt zo, lijkt mij?
Bij explode komt je delimiter niet terug in het resultaat. Afhankelijk van de opmaak zul je die dus weer zelf toe moeten voegen om fatsoenlijke html te krijgen.

@swtimmer:
Ik moest gelijk aan Jamie Zawinski (of eigenlijk aan een eerdere thread waarin deze quote aangehaald werd).
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1