[PHP] Image uit file_get_contents() string peuteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 149075

Topicstarter
Ik probeer een eigen pagina vanuit een eigen externe bron op te halen door gebruik te maken van file_get_contents() in PHP.

Dit werkt goed, de string wordt even het gehuegen in geladen wanneer de pagina met de file_get_contents() aangeroepen wordt en ik zie HTML output van iets dat eigenlijk op een andere machine draait. Nu zit er ook een plaatje in die pagina die ik GET met file_get_contents(). Het probleem is dat dat plaatje dus ook in die string zit en ik hem er met geen mogelijkheid uit kan krijgen.

Ik ben wat informatie tegen gekomen via google, op de PHP-site is er weinig te vinden over file_get_contents(), en ik zou gebruik moeten maken van regex.

Dus stel, ik doe in in een pagina:

code:
1
2
3
<?php
echo file_get_contents("http://url_van_server.tld/html/pagina.html");
?>


En het plaatje heet "plaatje.png"

Dan zou ik met een stukje code als dit:

code:
1
preg_match( "/src=\\\"(plaatje.png)\\\"/si", $contents, $matches );


Dat plaatje dus ook weer moeten kunnen weergeven.

Het probleem is alleen dat ik dus niet kan achterhalen met de documentatie van file_get_contents() op php.net of dit wel mogelijk is.

Misschien iemand met ervaring ?

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
file_get_content() geeft gewoon een string terug;
PHP:
1
2
3
4
5
$contents = file_get_contents("http://url_van_server.tld/html/pagina.html");
if(preg_match( "/src=\\\"(plaatje.png)\\\"/si", $contents, $matches ))
  print_r($matches);
else
  echo "plaatje niet gevonden";


//Edit
Of je wilt het daadwerkelijke plaatje hebben?
file_get_contents() kan prima met binaire data overweg;
PHP:
1
2
header("Content-type: image/png");
echo file_get_contents("plaatje.png");

[ Voor 38% gewijzigd door frickY op 08-10-2006 01:41 ]


Acties:
  • 0 Henk 'm!

Anoniem: 149075

Topicstarter
Dit is grappig, ik was net aan het testen hiermee want ik kon wel het plaatje getten in een string en dan weer uit de string halen, maar niet de hele html-file (+ normale statisch html dus) en dan alles weergeven.

Jouw eerste variant zou dus de hele pagina moeten weergeven ?

De tweede was ik net aan het testen en werkte :)

edit:


Ik krijg van jouw eerste idee een Array terug:



code:
1
Array ( [0] => SRC="plaatje.png" [1] => plaatje.png )

[ Voor 20% gewijzigd door Anoniem: 149075 op 08-10-2006 01:48 ]


Acties:
  • 0 Henk 'm!

Anoniem: 149075

Topicstarter
Ik ben er in zoverre achter dat ik het een of het ander kan laten zien. Dus de HTML uit de pagina die ik GET of het plaatje.

Aan de hand van de array hierboven kan ik dus achterhalen dat het plaatje wel ergens is, ik kan hem dus alleen los printen. en niet terug in de HTML waar hij hoorde.

Het is trouwens nog niet gelukt om beide items, HTML + plaatje, in enige volgorde tegelijk op de pagina te prinrten.

Wat ik wel voor elkaar gekregen heb is om de HTML met de string van het plaatje eronder te printen. Maar zodra ik van die string van het plaatje, dus je er dus uitgevist hebt, weer een plaatje wil maken wordt er niets meer weergegeven.

Het was gisteren zo laat met testen dat ik geen code kan reproduceren. Ik zal straks not even wat proberen als niemand hier zo een oplossing voor heeft.