<php> html includen

Pagina: 1
Acties:

  • Iced Earth
  • Registratie: December 2000
  • Laatst online: 05-08-2025
Ik heb het volgende probleem, ik heb een html met images welke gegenereerd wordt door een scriptje.
Deze pagina wordt door het scriptje neer gezet in de /webroot/test/pagina.html, en de images worden in de /webroot/test/images/ neergezet.
nu heb ik in /webroot/ een php pagina gemaakt waar ik de pagina.html in include.
De php pagina include de text van de html die wordt gegenereerd perfect alleen worden de images niet meegenomen omdat deze gelink zijn /images/img.jpg in de html file en omdat de php pagina in /webroot/ staat staan de link naar de images naar /webroot/images/img.jpg.

Hoe krijg ik het voor mekaar om te zorgen dat php de links naar de images vanuit het pad zoek waar de html pagina word gegenereerd, en niet vanuit het pad waar de php file staat zoals nu gebeurt.
Graag wil ik dit met php oplossen en niet door de html file aan te passen.

Ik heb al een paar dingetjes geprobeert die in de opmerkingen stonden bij de manual op php.net.
zoals
code:
1
2
3
4
5
<?php
chdir("/webroot/test/");
include("pagina.html");
chdir("..");
?>

Ook hier include hij de html pagina maar staan de links naar de images verkeert.
Wie heeft voor mij de oplossing ?

  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Je zou het kunnen oplossen door een str_replace te doen op /images/. Waarom zou je de HTML files eigenlijk niet willen wijzigen (dus eigenlijk het script wat die files genereert)?

  • Iced Earth
  • Registratie: December 2000
  • Laatst online: 05-08-2025
Omdat we hier meerdere van die scripts in een vaste directory structuur hebben draaien, over meerdere webroot van virtual servers, dus ik zoek een manier om die html de includen zonder ze of het script aantepassen.
Maar ik zal eens kijken wat ik met str_replace kan doen

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

*gaap*
PHP:
1
2
3
<?
  include("/webroot/test/pagina.html");
?>

Soms is het leven zo simpel.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Iced Earth
  • Registratie: December 2000
  • Laatst online: 05-08-2025
Op dinsdag 02 oktober 2001 01:02 schreef dusty het volgende:
*gaap*
PHP:
1
2
3
<?
  include("/webroot/test/pagina.html");
?>

Soms is het leven zo simpel.
*beetje wakker mode*

hier kwam ik ook als eerste mee, hij include de html file alle tekst is zichtbaar, alleen de images die in die html staan niet, de links naar die images worden vanuit het pad gezien waar de html staat, en als die in de php file wordt geinclude staan de links vanuit het pad waar de php file staat, zoals boven beschreven staat.
maar hoe krijg ik nou de php file zo weer om het pad te gebruiken waar de html staat zodat de links in de html kloppen, en nogmaals ik wil graag die html zolaten als die nu is.

*gaap* bedtijd

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op dinsdag 02 oktober 2001 01:13 schreef lostreality het volgende:
hier kwam ik ook als eerste mee, hij include de html file alle tekst is zichtbaar, alleen de images die in die html staan niet, de links naar die images worden vanuit het pad gezien waar de html staat, en als die in de php file wordt geinclude staan de links vanuit het pad waar de php file staat, zoals boven beschreven staat.
maar hoe krijg ik nou de php file zo weer om het pad te gebruiken waar de html staat zodat de links in de html kloppen, en nogmaals ik wil graag die html zolaten als die nu is.
Je vraagt hier het zichtbare pad van de php te veranderen :?

Het pad 'zoals de browser dat ziet' ?
Als je dat lukt, zal er zeer waarschijnlijk zsm een 'security-update' voor die browser beschikbaar komen.

Als je in die html van je de 'absolute htmlpaden naar de plaatjes gebruikt' (dus niet images/plaatje.gif maar http:// server.nl/images/plaatjes.gif) gaat het waarschijnlijk wel goed.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
waarschijnlijk staat er in je pagina.html

[img][b]/[/b]images/plaatje.jpg[/img]

als je die eerste slash weghaalt, dus:

[img]images/plaatje.jpg[/img]

dan werkt het wel.

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
als je die eerste slash weghaalt, dus:
[img]images/plaatje.jpg[/img]
dan werkt het wel.
Nee, dan werkt het niet, want het path naar de plaatjes moet zijn : [img]"test/images/plaatje.jpg[/img]

Een eventuele oplossing zou zijn om de pagina.html in te lezen in een variable (fopen / fread) dan een $nieuwe_inhoud = str_replace ("/images/","test/images/",$inhoudpagina); te doen en vervolgens $nieuwe_inhoud te printen.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op dinsdag 02 oktober 2001 11:10 schreef goalgetter het volgende:

[..]

Nee, dan werkt het niet, want het path naar de plaatjes moet zijn : [img]"test/images/plaatje.jpg[/img]

Een eventuele oplossing zou zijn om de pagina.html in te lezen in een variable (fopen / fread) dan een $nieuwe_inhoud = str_replace ("/images/","test/images/",$inhoudpagina); te doen en vervolgens $nieuwe_inhoud te printen.
de pagina.html staat al in de directory /test
dus dat hoef je dan er toch niet meer bij te zetten |:(
dus het zou wel moeten werken :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 15-09 11:51

Tjark

DON'T PANIC

nee, want de browser zit in /webroot/ , de links in de html staan relatief naar /images/pic.jpg (oid) want zo staan ze ook in de gegenereerde html.
De enige oplossing zoals ik die zie is die je zelf al aandroeg: str_replace doen zodat /images/ -> /test/images/ wordt.


Dusty: heb wel vaker gezien dat je reageert zonder het probleem te begrijpen. Dat helpt dus niet echt. Zorg er voor dat je het probleem begrijpt voordat je op post-reply klikt.

*insert signature here


Verwijderd

Ik include altijd <?php include"http://www.site.nl"; ?>


Groeten Sirik

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op dinsdag 02 oktober 2001 14:24 schreef TjarkVerhoeven het volgende:
nee, want de browser zit in /webroot/ , de links in de html staan relatief naar /images/pic.jpg (oid) want zo staan ze ook in de gegenereerde html.
De enige oplossing zoals ik die zie is die je zelf al aandroeg: str_replace doen zodat /images/ -> /test/images/ wordt.
wordt toch van te voren geparsed?? :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op dinsdag 02 oktober 2001 14:24 schreef TjarkVerhoeven het volgende:
Dusty: heb wel vaker gezien dat je reageert zonder het probleem te begrijpen. Dat helpt dus niet echt. Zorg er voor dat je het probleem begrijpt voordat je op post-reply klikt.
Tsja, die opmerking slaat niet ergens op. Zo duidelijk was de probleem beschrijving ook weer niet...

  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
SWINX:
wordt toch van te voren geparsed?? :)
Om het geheel dan nog maar een keer uit te leggen:

- De browser vraag de pagina op (http://www.domein.nl/script.php)
- Het script include een HTML file in /test/bestand.html
- In dat script staan RELATIEVE links naar een directory niveau lager : images/plaatje.jpg -> effectief als je /test/bestand.html zou oproepen dus : /test/images/plaatjes.jpg
Helaas pakt de browser het nu dus relatief t.o.v de siteroot -> http://www.domein.nl/images/plaatje.jpg en deze bestaat dus niet.

Dan nu de al eerder genoemde oplossing:

Doe iets in de trand van :
PHP:
1
2
3
4
5
6
7
8
<?
$fp = fopen ("./test/bestand.html",r);
$contents = fread ($fp, filesize ("./test/bestand.html");
fclose $fp;

$new_contents = str_replace ("[/images/","/test/images/",$contents);
echo $new_contents;
?>

Overigens zie ik nu dat er in de oorspronkelijke post stond
gelink zijn /images/img.jpg
Dit zou betekenen dat het absoluut gelinkt is, en dat het ook met een directe oproep van de html file niet zou werken (resultaat zou zijn : http://www.domein.nl/images/img.jpg)

<edit>Foutje, je moet uiteraard wel de goede waarde echo'en |:(</edit>

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 15-09 11:51

Tjark

DON'T PANIC

-ontopic-
Goalgetters oplossing lijkt me de eenvoudigste manier om die relatieve links te converten.

-offtopic-
Op dinsdag 02 oktober 2001 18:01 schreef ACM het volgende:
[..]
Tsja, die opmerking slaat niet ergens op. Zo duidelijk was de probleem beschrijving ook weer niet...
ik begreep het, and I'm no rocket scientist ;)

*insert signature here

Pagina: 1