Search and Replace functie

Status
Niet open voor verdere reacties.

bvanleeuwen254

Gebruiker
Lid geworden
12 feb 2008
Berichten
243
Hallo,

Ik ben bezig met het updaten van mijn website, alleen ik wordt het zat dat wanneer ik mijn website ga updaten dat ik dan alle URLS moet vervangen met de link in die ik gebruik in mijn localhost.Aangezien met website meer als 15 pagina's heeft is dat een aardige klus.

Ik ben dus met mijn index pagina begonnen. Ik heb de extensie veranderd van index.html in index.php

Nu heb ik helemaal aan het begin van mijn index.php bestand de volgende php code geplaatst:
PHP:
<?php
function page(){
        $search = array();
        $replace = array();
        $search[0]  = "<{HOME_URL}>";
        $replace[0] = "http://localhost/";
}
?>
en daar onder staat mijn webpagina:
HTML:
<html>
<head>
<meta name="generator" content="Fog Creek CityDesk 2.0.19" />
<meta name="citydesk" content="2FB3C924/6" />
<title>Startpagina - Schoorsteenveegbedrijf Joop van Leeuwen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index,follow">
<meta name="keywords" content="schoorsteen,vegen,veger,renoveren,renovatie,lekken,lek,onderzoek,kap,kapot,metselen,metselaar,meester,onderzoek,kanaal,kanalen,woning,voering,haard,open,kachel,hout,open-haard,schoorsteenveger,schoorsteenbouw,schoorsteenrenovatie,schoorsteenbrand,schoorsteenmeester,schoorsteenlek,schoorsteenonderzoek,schoorsteenkap,schoorsteenmetselen,openhaard,houtkachel,camera,inspectie,inspektie,camera-inspectie,mechanische,ventilatie,mechanische ventilatie,reinigen,ventilatiekanalen,huisventilatie,woningventilatie,schoorsteenvoering">
<meta name="description" content="Joop van Leeuwen vof: de schoorsteenveger die al uw afvoerkanalen, mechanisch of niet, grondig en professioneel reinigt.">
<meta name="organization" content="Joop van Leeuwen vof">
<meta name="language" content="NL">
<meta name="author" content="http://www.graafadvies.nl/">

<link href="gui/1.css" rel="stylesheet" type="text/css">
</head>
<!-- Imporant information NOW! -->
<body ><div id="container" >
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%"><!-- Sets the page width-->
  <tr> 
    <td height="112" width="218" bgcolor="#336699"><IMG alt="Foto: Jaap de Boer (Utrechts Nieuwsblad)" src="Images/joopvanleeuwen.JPG" border=0></td>
    <td height="112" width="20" bgcolor="#006699">&nbsp;</td>
    <td height="112" width="400" bgcolor="#006699"><h3>:: Joop van Leeuwen</h3><h1>::schoorsteenvegersbedrijf</h1></td>
    <td height="112" bgcolor="#006699" align="right"><h1 align="right">Henegouwerhof 40<br>2411 JZ Bodegraven<br>Tel. 0172-610476<br><a class="email" href="mailto:info@joopvanleeuwen.nl">info@joopvanleeuwen.nl</a>

</h1></td>
    <td height="112" width="20" bgcolor="#006699">&nbsp;</td>
  </tr>
  <tr valign="top"> 
    <td width="218" height="100%" bgcolor="#cccccc" STYLE="background-image:url('Images/steen_11.jpg');"> 
      <p>&nbsp;</p>
      <table width="80%" border="0" cellspacing="2" cellpadding="2" align="center">
        <tr> 
          <td bgcolor="#006699" height="25"> 
            <div align="center"><br><h4>Keuzemenu</h4></div>
          </td>
        </tr>
        <tr> 
          <td valign="top" bgcolor="#ffffff"> 
            <p align="center"><br>
              <a href="<{HOME_URL}>papa/pagina/index/">Startpagina</a><br/><br/>
              <a href="http://afspraak.joopvanleeuwen.nl/">Afspraak maken</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/prijslijst/">Prijslijst</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/werkgebied/">Ons Werkgebied</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/groteopenhaarden/">Grote open haarden</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/rvshoutkachel/">RVS-voering houtkachel</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/rvsgas/">RVS-voering gaskachel</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/mechanischeafzuiginstallatie/">Reinigen mechanische afzuiginstallatie</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/lekkeschoorsteen/">Lekke schoorsteen</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/vermogenkachel/">Het vermogen van een kachel</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/diameteropenhaard/">De diameter van een openhaardkanaal</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/schoorsteenvegersfeest/">Schoorsteenvegersfeest</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/musical/">Musical ''Giovanni''</a><br/><br/>
              <a href="<{HOME_URL}>papa/pagina/schoorsteenvegersweetjes/">Schoorsteen(vegers) weetjes</a><br/><br/><!-- stopt hier :P
              -->
              <!-- Oude Navigatie Menu, nieuwe staat hier boven :D
              <a href="index.html">Startpagina</a><br/><br/>
              <a href="artikelen/Musical.html">Musical</a><br/><br/>
			  <a href="artikelen/prijzen.html">Prijzen</a><br/><br/>
              <a href="artikelen/Onswerkgebied.html">Ons werkgebied</a><br/><br/>
              <a href="artikelen/Groteopenhaarden.html">Grote open haarden</a><br/><br/>
              <a href="artikelen/RVSvoering.html">RVS voering (houtkachel)</a><br/><br/>
              <a href="artikelen/RVSvoering-2.html">RVS voering (gaskachel)</a><br/><br/>
              <a href="artikelen/Reinigenmechanischeafzuig.html">Reinigen mechanische afzuiginstallatie</a><br/><br/>
			  <a href="artikelen/Onderhoudafvoervaneengast.html">Lekke schoorsteen</a><br/><br/>
              <a href="artikelen/Hetvermogenvaneenkachel.html">Het vermogen van een kachel</a><br/><br/>
              <a href="artikelen/Dediametervaneenopenhaard.html">De diameter van een openhaardkanaal</a><br/><br/>
              <a href="artikelen/Schoorsteenvegersfeest.html">Schoorsteenvegersfeest</a><br/><br/>
			  <a href="artikelen/form_afspraak.html">Afspraak maken</a><br/><br/>
			  <a href="artikelen/Boekenenmusicals.html">Schoorsteen(vegers) weetjes</a></p>
			  <a href="artikelen/contact_formulier.html">Contactformulier</a><br/><br/>--> 
             </p>
            </td>
        </tr>
        <tr> 
          <td bgcolor="#006699" height="25"> 
            <div align="center"><br>
            <h1>Henegouwerhof 40<br>
              2411 JZ Bodegraven<br>
            Tel. 0172-610476</h1>
            </div>
          </td>
        </tr>
      </table>
    </td>

    <td width="20" height="100%" bgcolor="#eeeeee">&nbsp;</td>
    <td height="100%" colspan="2" bgcolor="#eeeeee">
      <H2><BR><b><font color="#336699" size="3">Introductie</font></b></H2>
<p><span><img height="153" alt="Schoorsteenveegbedrijf Joop van Leeuwen Logo" hspace="4" src="Images/Jvllogo.GIF" width="120" align="left" border="0" cd:pos="1" /></span>Na 
6 jaar ervaring opgedaan te hebben bij diverse werkgevers, is op 17 januari 1991 
Schoorsteenbedrijf Joop van Leeuwen gestart. Na het volgen van de gezel- en meesteropleidingen van de <a href="http://www.aspb.nl/" target="_blank">ASPB</a>, was Joop van Leeuwen de eerste Meester Schoorsteenveger in de provincie Utrecht.</p>
<p>Het is van groot belang om aangesloten te zijn bij een goede branche-organisatie. Daarom zetten wij ons in om te voldoen aan de normen van <a href="http://www.aspb.nl" target="_blank">de ASPB, de Algemene Schoorsteenvegers PatroonsBond</a>.</p>
<br>
<br>
<br>
<br>
<br>
<h2><u>Wat doen we naast schoorsteenvegen nog meer voor u?</u></h2>
<p><b><a href="artikelen/Groteopenhaarden.html">Vegen van grote openhaardkanalen</a></b><br />
Het vegen van een groot openhaardkanaal vraagt iets meer dan de traditionele 
veegwijzen. De haardopening wordt goed afgeschermd, om stof in de woonruimte te 
vermijden. Een presentatie van zeven foto's geeft u een indruk hoe dit gebeurt.</p>
<p><a href="artikelen/RVSvoering.html"><b>Een RVS-voering plaatsen in&nbsp;het rookkanaal van een houtgestookte kachel</b></a><br />
Een&nbsp;presentatie van 10 foto's toont u&nbsp;het aanleggen van een roestvrijstalen voering in het schoorsteenkanaal van een houtkachel.</p>
<p><b><a href="artikelen/RVSvoering-2.html"><b>Een RVS-voering plaatsen in het rookkanaal van een gaskachel</b></a></b><br />
Een fotopresentatie van het maken van een roestvrijstalen voering in het afvoerkanaal van een gaskachel. Deze 13 foto's laten zien hoe dat in zijn werk gaat.</p>
<p><b><a href="artikelen/Reinigenmechanischeafzuig.html"><b>Het reinigen van een mechanische afzuiginstallatie</b></a></b><br />
Het reinigen van een mechanische afzuiginstallatie is van groot belang om tot een optimale luchthuishouding in de woning te komen. 16 foto's laten zien hoe zowel de kanalen als de motor worden&nbsp;schoongemaakt. Waarom het goed is om de afzuiginstallatie te reinigen leest u in een <a href="waaromventilatie.html">rapport van Ir. Evert Hasselaar</a>, van het onderzoeksinstituut OTB.</p>
<p><a href="artikelen/Hetvermogenvaneenkachel.html"><strong>Berekenen van het vermogen van uw kachel</strong></a><br />
Als u een kachel geplaatst wilt hebben in uw huiskamer, is het nodig te berekenen hoeveel warmte deze kachel moet gaan afgeven. Met behulp van een eenvoudig formulier geeft u lengte en breedte van uw huiskamer in, en ziet u welk vermogen uw kachel nodig zal hebben.<br />
Voor de aanschaf van een gaskachel in uw huis verwijzen we u naar <a href="http://www.haveverwarming.nl/" target="_blank">Have verwarming b.v.</a></p>
<p><strong><a href="artikelen/Dediametervaneenopenhaard.html"><strong>Berekenen 
van de diameter van een openhaardkanaal</strong></a></strong><br />
Wanneer een openhaard geplaatst wordt in een kamer, moet er een berekening plaatsvinden hoe groot het afvoerkanaal moet zijn, zodat de trek van 
het kanaal optimaal is. De berekening op deze pagina geeft niet alleen de 
vereiste diameter van het kanaal aan, maar ook het luchtverbruik van de openhaard.</p>
		<p><b><font color="#336699" size="3">Zie het linker menu voor verdere 
		info betreffende het schoorsteenvegersvak, zoals de musical, 
		schoorsteenvegersweetjes en het schoorsteenvegersfeest in Italië.&nbsp;&nbsp;
		</font></b></p>
    </td>
    <td width="20" height="100%" bgcolor="#eeeeee">&nbsp;</td>
  </tr>
  <tr bgcolor="#006699"> 
    <td width="166">&nbsp;</td>
    <td height="20" colspan="4"> 
      <h1>© 2011 Schoorsteenveegbedrijf Joop van Leeuwen</h1>
    </td>
  </tr>
</table>
</div></body>
</html>

Als ik nu op een van de links ga staan krijg ik het volgende te zien: localhost/papa/<{HOME_URL}>papa/pagina/index/

Wat heb ik fout gedaan?

Bob
 
Denk je niet dat het veel makkelijker is om de search&replace functie van je editor te gebruiken? Notepad++ bijv. heeft de functie om in alle files in een bepaalde map iets te zoeken en te vervangen.

Verder heb je een functie aangemaakt die vervolgens niet aangeroepen wordt dus ik weet niet wat je verwacht dat er gebeurd, maar er gebeurd dus niks :)
 
Je hoeft geen absolute paden mee te geven!

Mocht je dit alsnog willen doen, gebruik dan gewoon de <base> tag: http://www.w3schools.com/tags/tag_base.asp. Dat scheelt een hoop gedoe met PHP en, als gratis bonus, PHP hoeft niet voor ELKE bezoeker steeds het script uit te voeren.



:thumb:

[edit]ge'ninja'd door Frats! Zijn idee kan natuurlijk ook ;)[/edit]
 
Bedankt voor alle antwoorden die ik heb ontvangen!;)

Ik vind die base tag wel heel erg gemakkelijk, is wel wat voor de lui mensen onder ons waar ik een van ben:rolleyes:
 
Wat heeft output bufferen te maken met het vervangen van URL's?
9 van de 10 keer wordt ob_start() gebruikt omdat de structuur binnen het programmeren ontbreekt of onlogisch is.
Als je "Headers already sent" (vaak de reden dat men met ob_start() komt opdraven) als melding krijgt los je dat niet op, je verlegt het probleem met ob_start() alleen maar.

Als ik zou moeten kiezen wordt het de optie van That Guy, efficiënter en makkelijk in "onderhoud"
 
Laatst bewerkt:
Wat <base> doet kan ook weer makkelijker, maar dan wel in PHP. Hierbij maak je gebruik van een constante die het pad aangeeft, en die constante gebruik je overal in je HTML-pagina's. Zo kun je ook aan de hand van voorwaarden de constante vullen. In een config-script of index.php bekijken of de site op localhost of online staat en aan de hand daarvan de URL-constante vullen.

PHP:
if($_SERVER['pathblabla'] == 'ongeveerlocalhost'){

define('BASE_URL', 'http://localhost/');

}else{

define('BASE_URL', 'http://www.domein.nl/');

}

echo '<a href="' . BASE_URL . 'index.html" />';
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan