[PHP] bestaande .html parsen en wijzigen

Pagina: 1
Acties:

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Okee, het probleem is redelijk eenvoudig maar ik zit vast weer veel te moeilijk te denken.

Ik wil in een php script een andere html pagina openen (via http, niet lokaal), en daar enkele stringpatronen in wijzigen.
De patronen staan vast, kunnen dus regexes voor gebruikt worden. Dat is het probleem niet.

Hoe kan ik het beste die html pagina openen, de datastroom analyseren en de gewijzigde stroom weer uitspugen?
Welke php functies zijn hiervoor te gebruiken?

  • The Bad Seed
  • Registratie: November 2001
  • Laatst online: 13-09 12:19

The Bad Seed

Chaotic since 1983

Veel php ken ik niet, maar ik zou gewoon een fopen() doen op die html pagina, alles in 1 string zetten , daar je wijzigingen op loslaten en dan je string echoen.

Hail to the guardians of the watchtowers of the north


  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Oh okee, zie het nu pas (bewust) staan ;)
fopen -- Opens file or URL

Is het nu mogelijk om deze file door preg_replace() heen te halen? En zo ja, hoe dan?

  • The Bad Seed
  • Registratie: November 2001
  • Laatst online: 13-09 12:19

The Bad Seed

Chaotic since 1983

bestand inladen in een string
PHP:
1
2
3
4
<?
$link=fopen('http:/... ', 'r');
$string=fread($link, "lengte van html")
?>

Hail to the guardians of the watchtowers of the north


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Nou, fopen retourneert een filepointer integeger :)

En fread kan die dan gebruiken om een data van te lezen :)


edit:

Maarja, iemand op Duracell gaat natuurlijk sneller ;)

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Ok, dit zou dus moeten werken:
PHP:
1
2
3
4
5
6
<?
$fp = fopen("http://blaat.com", "r");
$htmlpage = fread($fp, 100000);
//preg_replace stuff hier
print($htmlpage);
?>

Thnx voor de hulp!

Verwijderd

wat simpeler is (vind ik):

$file = implode("\n", file("http://www.tweakers.net"));

nu heb je in de variabele $file de homepage.

Let op dat plaatjes die relatief gelinkt zijn niet goed weergegeven worden als het script niet in de zelfde directory staat als het geopende bestand (bijv. als je het bestand leest vanaf een andere server

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 13 januari 2002 01:12 schreef SurfingFromAM2PM het volgende:
wat simpeler is (vind ik):
En een stuk slomer wegens gigantische overhead door dat array ;)
PHP:
1
2
3
4
5
6
7
8
<?
$fp = fopen();
while(!feof($fp))
    $var .= fread($fp, 4096);

$var = preg_replace('...', '...', $var);
echo $var;
?>

Vind ik dan de mooiste oplossing.

  • Stewie!
  • Registratie: September 2001
  • Laatst online: 09:13

Stewie!

Keen must die!

Op zaterdag 12 januari 2002 22:33 schreef eamelink het volgende:
...
edit:

Maarja, iemand op Duracell gaat natuurlijk sneller ;)
LOL :P :9
Er stond ooit in het phpfreakz forum (in de tijd dat daar alleen nog maar gevorderden php'ers waren) een leuk script dat zo website ophaalde, en waar je dan verschillende zaken mee kon veranderen (titel, achtergrond, bla en bla etcetera). Ik heb zitten zoeken, maar k vond t iet meer |:(
dus... :P


Strava: https://www.strava.com/athletes/149347154

Pagina: 1